我总结的C++问题集(30多个)
我总结的C++问题集,您也可以在下面的网址找到pdf格式的下载:
http://www.designersky.com/upload/cpp_puzzle.pdf
1:C和C++有什么区别:
C++支持面向对象的编程,同时兼容C语言的面向过程编程
2:VB和C++有什么区别:
VB是一门基于对象语言,有对象和类的概念,但是对于继承、多态实现的不好
3:VC和C++有什么区别:
VC可以看成是C++加上MFC基础类库的组合
4:声明一个引用是需要注意什么,函数返回引用时需要注意什么:
1 必须在定义引用的时候就声明引用对象
2 不能更该引用对象
3 不能引用数字,常量,表达式
函数引用返回不能引用局部变量
5:引用和指针有什么区别:
指针:可以随意指向不同的地址(水性杨花)
引用:声明后不能引用其它变量(从一而终)
6:常量引用和常量指针的区别:
不能改变常量引用的值
可以改变常量指针的值,但是不能改变常量指针的指向
7:缺省参数和函数重载的区别和应用:
缺省参数可以看作是函数重载的特例,Java中取消了缺省参数。
应用:缺省参数可以涵盖普通应用和特殊应用,但如果要更灵活的处理,需要函数重载
8:void add(int a, int b)和int add(int a, int b, int c=0)是否是正确的函数重载:
不是,有可能存在二义性
9:void add(int a, int b)和int add(const int &a, const int &b)是否是正确的函数重载:
不是,整型的引用也是整型
10:内联函数有什么用,是否在函数名前加上inline关键字就成为内联函数了?:
用途:节省调用函数的开销,加快运行速度
不一定,编译器会自动优化
11:何时会用到::操作符:
类外实现方法,引用类的静态成员等
12:static成员和普通成员的区别:
1 静态成员可以不经实例化直接引用
2 静态属性可以有初始值
3 静态方法中只能访问静态成员
4 静态成员一般描述对象的共同特征"
13:举一个应用static的例子:
连锁店是一个类,店名属性应该是静态(班级班费)
14:构造函数和析构函数的作用:
构造函数用来初始化属性,为指针分配内存空间,析构函数用来释放分配的空间
15:new/delete操作符和malloc/free的区别:
1 new/delete是C++标准函数,效率高
2 new自动获得分配的size,使用方便
3 new/delete会引发构造/析构函数
16:写一个为int型指针分配100个空间,然后回收的例子:
int *p = new int[100];
delete [] p;
17:什么是浅复制,什么是深层复制:
当类中包含指针属性时,浅复制只复制地址,深层复制则复制内容
18:写一个类模拟cin和cout:
class MyCout {
public:
MyCout & operator <<(int a) {
printf(""%d"", a);
return *this;
}
}
19:描述C++的异常处理:
就是try, catch模型"
20:同VB的异常处理相比,C++有何优势:
C++的异常处理区分了正常代码和异常处理代码,并且在抛出用户自定义异常方面更加完善
21:简述C++中的4种继承模型:
单一继承,多重继承,层级继承,多极继承
22:图中如果类A, C中存在同名方法abc,如何引用:
实例化D的对象d,可以用d.A::abc()或d.B::abc()引用A中的方法,d.C::abc()引用C中的方法
23:子类会继承父类中所有的内容吗?:
private的成员不会被继承
24:题22的图中,实例化D的对象后,构造函数和析构函数的顺序是什么?:
A()-->B()-->C()-->D()-->~D()-->~C()-->~B()-->~A()
25:如果父类中存在有参数的构造函数,一般来说也要为它提供没有参数的构造函数,为什么?:
因为子类在实例化的时候回收先调用父类中没有参数的构造函数(除非子类中声明调用父类中带参数的),这是因为父类中存在构造函数,编
译器不会为父类产生缺省的构造函数,就会发生错误
26:什么叫Override,和Overload有什么区别?:
Override:函数覆盖,发生在父类和子类中,子类覆盖函数和父类的源函数声明必须完全一致
Overload:函数重载,重载的一组函数必须具有各自不同的参数
27:父类和子类对象是否可以相互转换?:
是单向的,可以将子类对象赋给父类对象,也可以让父类指针指向子类,但是不能反过来
28:继承可以干什么?:
可以实现代码重用
代码重用的三个阶段:
1 复制 缺点:代码分散
2 模块化 缺点:不易维护,扩充
3 继承"
29:父类指针指向子类对象后是否能调用子类中的方法?:
不能,除非将父类中的方法声明成virtual
注意:不能通过父类指针调用子类中特有的方法
30:虚函数和纯虚函数的区别和应用:
区别:纯虚函数一般没有实现
应用:父类中有必要实现该方法,考虑到多态可以用虚函数,如果父类中没有必要实现该方法,但是期望在子类中实现,可以使用纯虚函数
31:类和抽象类的区别和应用:
区别:抽象类不能实例化对象,抽象类的子类一定要覆盖父类中的纯虚函数
应用:类一般用来描述现实中存在的对象,抽象类用来描述现实中不存在的概念。比如抽象类“形状”和类“圆”"
32:子类一定要覆盖(实现)父类中的纯虚函数吗?虚函数呢?:
子类如果不覆盖父类中的纯虚函数子类不能实例化对象,也变成了抽象类,虚函数子类可以不覆盖
33:虚析构函数有什么用途,举例?:
虚析构函数可以保证子类中的析构函数能被调用
34:写一个多态:比如CPU商品
35:写一个类工厂:
问题点数:20、回复次数:87Top
1 楼Underwind(Underwind)回复于 2005-04-02 21:11:20 得分 0
不好意思,忘写了一句,本文章是原创,出自http://www.designersky.comTop
2 楼JustLikeTheWind(风)回复于 2005-04-02 21:14:27 得分 3
mark,其实应该加入faqTop
3 楼Underwind(Underwind)回复于 2005-04-02 21:16:18 得分 0
mark是什么意思?Top
4 楼arrowcy(长弓手)回复于 2005-04-02 21:17:07 得分 1
指针:可以随意指向不同的地址(水性杨花)
引用:声明后不能引用其它变量(从一而终)
这个解释比较有意思,要是有更多这样的解释的话,就更好了Top
5 楼arrowcy(长弓手)回复于 2005-04-02 21:17:49 得分 1
mark就是标记的意思Top
6 楼Underwind(Underwind)回复于 2005-04-02 21:20:29 得分 0
恩,关于指针和引用,也是我突然灵感来了写的,剩下的有些中规中矩,这个问题集是我上课用来提问的。Top
7 楼llf_hust()回复于 2005-04-02 21:20:32 得分 0
不错不错
UPTop
8 楼sankt(宠辱不惊,看庭前花开花落;去留无意,望天空云卷云舒.)回复于 2005-04-02 21:48:29 得分 0
不错
upTop
9 楼Underwind(Underwind)回复于 2005-04-02 21:51:33 得分 0
楼上的说话一向这么简洁吗?Top
10 楼djxman(海风)回复于 2005-04-02 21:51:33 得分 0
还有数组和符号串中怎么使用指针???Top
11 楼Underwind(Underwind)回复于 2005-04-02 21:53:53 得分 0
比如
int *p;
p = new int[100];
p[0] = 3;
p[1] = 10;Top
12 楼zx2002027(http://www.netyi.net/in.asp?id=zx2002027)回复于 2005-04-02 22:27:21 得分 0
好东西,收了Top
13 楼foochow(无聊,灌水......)回复于 2005-04-02 22:37:48 得分 0
谢谢了^_^,学习下Top
14 楼ycom__net(一恒)回复于 2005-04-02 22:44:08 得分 0
呵呵,一般的习题了,不过得对c++的语法有比较好的掌握Top
15 楼CloudOfFly(追忆)回复于 2005-04-02 22:51:28 得分 0
UPTop
16 楼amyamyamy(叹气叹气)回复于 2005-04-02 22:55:08 得分 1
你的帖子挺招人喜欢的啊!
继续努力啊
加油!Top
17 楼Underwind(Underwind)回复于 2005-04-02 22:57:31 得分 0
呵呵,谢谢楼上的捧场阿Top
18 楼vip_java(懂得珍惜)回复于 2005-04-03 01:38:47 得分 0
3ksTop
19 楼answersha(水少爷)回复于 2005-04-03 09:12:21 得分 0
upTop
20 楼cjj29520(绝顶苍松)回复于 2005-04-03 09:18:39 得分 0
我顶
Top
21 楼laomai(老迈)回复于 2005-04-03 09:23:34 得分 0
楼主有进饼子堂的潜力啊,呵呵Top
22 楼xjp6688(大平/要做必须最好)回复于 2005-04-03 09:24:39 得分 0
GOOD
SUPPORTTop
23 楼adama2005()回复于 2005-04-03 09:31:47 得分 0
up!Top
24 楼Wolf0403(废人:独活十年~心如刀割)回复于 2005-04-03 09:34:08 得分 0
回复人:laomai(老迈) ( 五级(中级)) 信誉:92 2005-04-03 09:23:00 得分:0
?
>> 楼主有进饼子堂的潜力啊,呵呵
想当初,老迈就是干这个出身的。。。
Top
25 楼stevensinclair(游戏_开始)回复于 2005-04-03 10:44:59 得分 0
收藏。。。Top
26 楼ycom__net(一恒)回复于 2005-04-03 12:32:46 得分 0
回复人:laomai(老迈) ( 五级(中级)) 信誉:92 2005-04-03 09:23:00 得分:0
?
>> 楼主有进饼子堂的潜力啊,呵呵
想当初,老迈就是干这个出身的。。。
呵呵Top
27 楼idealpure(静以致极)回复于 2005-04-03 13:57:54 得分 0
帮顶Top
28 楼freelancerww(风行)回复于 2005-04-03 14:38:34 得分 0
顶了Top
29 楼sun428(Born to Win)回复于 2005-04-03 14:55:39 得分 0
收藏Top
30 楼zoehugh(一切皆有可能)回复于 2005-04-03 16:04:32 得分 2
new/delete操作符和malloc/free的区别:
new/delete是C++标准函数,效率高
??????????????????????????
new/delete是操作符还是标准函数???
据我所知是操作符。Top
31 楼steedhorse(晨星)回复于 2005-04-03 17:03:35 得分 0
不错,顶一下。当然,小问题还是有的,有些则太过具体。Top
32 楼xuzheng318(忧郁王子)回复于 2005-04-03 17:21:21 得分 0
楼主我很想知道什么是“层级继承,多极继承”
是什么? 能否指教!Top
33 楼steedhorse(晨星)回复于 2005-04-03 17:36:53 得分 0
俺也想知道。Top
34 楼yhq520(网络~小虾)回复于 2005-04-03 17:51:58 得分 0
其实这是多数人都想去看看~~~~~~~~~~~!!
我喜欢你的这作~~~~~~~~~!Top
35 楼bzwm(不走完美)回复于 2005-04-03 19:01:13 得分 0
嗯,说的都很实在,也都很生动,谢谢楼主~
刚刚学C++没多久,感觉受益匪浅~Top
36 楼bzCpp(csdn总技术值班室之饼子堂)回复于 2005-04-03 19:13:30 得分 0
从积极性上来看是好的,从正确性上来看,错的不少。
Top
37 楼carloslee(李悠然)回复于 2005-04-03 20:08:17 得分 0
很有意思Top
38 楼Xy4Ever(邪恶漫步者)回复于 2005-04-03 20:44:51 得分 0
还好我是新鸟,但是为什么 bzCpp(csdn总技术值班室之饼子堂) 那样说呢?我该不该看呢?Top
39 楼lwaaa(迦叶)回复于 2005-04-03 20:47:59 得分 0
mark!Top
40 楼llguazike(猫+鼠)回复于 2005-04-03 21:38:22 得分 0
GOOD !Top
41 楼amyamyamy(叹气叹气)回复于 2005-04-03 21:57:55 得分 0
bzCpp,你说哪里不正确可以提出来啊。这样含含糊糊的让人很难信服的!Top
42 楼zhuangmin(happy九拍)回复于 2005-04-03 21:58:55 得分 0
第四条和第六条有点矛盾Top
43 楼amyamyamy(叹气叹气)回复于 2005-04-03 22:01:04 得分 0
underwind你今天跑哪去了?居然不在网上挂着,你的主页也打不开,还不快回来解决问题Top
44 楼amyamyamy(叹气叹气)回复于 2005-04-03 22:03:47 得分 0
zhuangmin,没有矛盾啊,你是不是没理解他的意思,在看看
要真有毛病就批评他Top
45 楼Underwind(Underwind)回复于 2005-04-03 23:17:14 得分 0
1 饼子堂是什么?
2 第4条和第6条没有矛盾,第4条我说的是引用,第6条我说的是常量引用。
3 new/delete应该是操作符,我写错了Top
46 楼Underwind(Underwind)回复于 2005-04-03 23:19:12 得分 0
嘿嘿,不妨理解成笔误Top
47 楼Underwind(Underwind)回复于 2005-04-03 23:23:10 得分 0
21:简述C++中的4种继承模型:
单一继承,多重继承,层级继承,多极继承
其实这一条我自己都觉得有些无聊,大体分就两种:单继承和多继承,不过教材上分了四种,只能这么说了Top
48 楼laomai(老迈)回复于 2005-04-04 09:11:53 得分 0
回复人: amyamyamy(叹气叹气) ( ) 信誉:100 2005-04-03 21:57:00 得分: 0
bzCpp,你说哪里不正确可以提出来啊。这样含含糊糊的让人很难信服的!
————————————————————————————————————————
放心,饼子堂里的饼子们马上就会出来的,呵呵
Top
49 楼pagechen(天外飞来的仙)回复于 2005-04-04 10:00:49 得分 0
受益匪浅Top
50 楼whyglinux(山青水秀)回复于 2005-04-04 10:30:23 得分 0
4.3 不能引用数字,常量,表达式
这个描述是错误的。const引用可以对常量(包括数字常量)进行引用。Top
51 楼warmage(严武)回复于 2005-04-04 10:35:29 得分 0
upTop
52 楼Darrren2185(考拉)回复于 2005-04-04 14:03:27 得分 0
CoolTop
53 楼yhb7805(codingMouselet)回复于 2005-04-04 14:17:22 得分 2
回复人:arrowcy(长弓手) ( 四级(中级)) 信誉:100 2005-4-2 21:17:08 得分:0
?
指针:可以随意指向不同的地址(水性杨花)
引用:声明后不能引用其它变量(从一而终)
这个解释比较有意思,要是有更多这样的解释的话,就更好了
-------------------------------------------------------------------
那是不是说用指针的人都比较淫荡啊???Top
54 楼Underwind(Underwind)回复于 2005-04-04 15:12:51 得分 0
回复人: yhb7805(codingMouselet)
指针:可以随意指向不同的地址(水性杨花)
引用:声明后不能引用其它变量(从一而终)
这个解释比较有意思,要是有更多这样的解释的话,就更好了
-------------------------------------------------------------------
那是不是说用指针的人都比较淫荡啊???
-------------------------------------------------------------------
您真是太厉害了
Top
55 楼Underwind(Underwind)回复于 2005-04-04 15:13:46 得分 0
关于引用不能引用常量, 我再次声明:我把引用和常量引用分开了Top
56 楼baby2003627(梦想)回复于 2005-04-04 15:29:47 得分 0
好多基础的东西啊!!
保留!
good!!!!up!Top
57 楼tuoliao722(鸵鸟)回复于 2005-04-04 16:08:56 得分 0
好东西,谢谢楼主了Top
58 楼hywhy(满满)回复于 2005-04-04 16:29:55 得分 0
我收藏!谢谢!Top
59 楼seaskycj(亦凡)回复于 2005-04-04 17:11:33 得分 0
gzingTop
60 楼xdlhf(人在天涯)回复于 2005-04-04 17:22:03 得分 0
markTop
61 楼Underwind(Underwind)回复于 2005-04-04 20:39:44 得分 0
gzing是什么意思?Top
62 楼poplar_1107(蚱蜢)回复于 2005-04-04 20:47:53 得分 0
不错,先收藏起来,学好了再复习复习
Top
63 楼newman0708(nch)回复于 2005-04-04 20:52:58 得分 0
支持Top
64 楼alex2001y(丁丁)回复于 2005-04-04 21:39:28 得分 0
强Top
65 楼ershidu(20℃)回复于 2005-04-04 21:52:33 得分 0
满详细的!!!Top
66 楼wuyupu(wuyupu)回复于 2005-04-04 22:05:54 得分 0
好东西Top
67 楼amyamyamy(叹气叹气)回复于 2005-04-04 23:15:27 得分 0
我老师当然是最厉害的了,支持你,永远!Top
68 楼jinder22(jinder22)回复于 2005-04-04 23:53:42 得分 0
goodTop
69 楼jojo_cisco_ustb(天糖)回复于 2005-04-05 01:15:52 得分 0
got it
Top
70 楼foxbillcsdn(fox)回复于 2005-04-05 08:51:12 得分 0
不错,一看就是搂住花功夫自己总结的。虽然有些不是很正确,但很值得收藏。多谢Top
71 楼yulechen(辰)回复于 2005-04-05 08:54:06 得分 0
支持原创! 支持正版!Top
72 楼foxbillcsdn(fox)回复于 2005-04-05 09:33:07 得分 10
补充一下:
下载pdf后看了看,还是写的很不错的,虽然也有一些不是很正确的地方。
有一个错误,我想有必要指出来,是个不小的错误。
23: 子类会继承父类中所有的内容吗?
private的成员不会被继承。
这不对,子类会把父类所有的都继承下来,只不过子类无法访问父类中private成员。这个观念其实很重要的,所以我想提出来。Top
73 楼Underwind(Underwind)回复于 2005-04-05 14:20:38 得分 0
恩,是的,我想楼上的说得有道理,C++中应该是这样的,不过既然子类无法访问private成员,跟没有的区别不是很大吧。
恩,应该是我的错误,嘿嘿,还是虚心点吧。Top
74 楼Underwind(Underwind)回复于 2005-04-05 14:57:04 得分 0
好了,我的C++问题集更新完了
有意者可以从 http://www.designersky.com/upload/cpp_puzzle.pdf 下载Top
75 楼amyamyamy(叹气叹气)回复于 2005-04-07 12:24:14 得分 0
有误导的嫌疑了。Top
76 楼zhousqy(标准C匪徒)(甩拉,甩拉)回复于 2005-04-07 12:44:57 得分 0
饼子堂是什么?怎么进阿?
Top
77 楼rocklabzhang()回复于 2005-04-07 12:51:57 得分 0
upTop
78 楼Underwind(Underwind)回复于 2005-04-07 18:56:18 得分 0
饼子堂是一个群,里面的人都是…… 进去了就知道了。Top
79 楼steedhorse(晨星)回复于 2005-04-07 19:24:19 得分 0
饼子堂就是个容器,跟STL里的容器差不多,老迈(一个全局唯一的对象)内部维护一个指向它的指针,然后定期的抓来壮丁就直接通过引用往里边push_back。。。。Top
80 楼steedhorse(晨星)回复于 2005-04-07 19:26:07 得分 0
由于实现所用的算法及数据结构过于蹩脚,所以里边乱得很。^0^Top
81 楼Underwind(Underwind)回复于 2005-04-07 19:27:42 得分 0
哈哈!!!Top
82 楼proccc(无尽的屁)回复于 2005-04-07 19:42:07 得分 0
写的太含糊了
Top
83 楼277894613(秒大刀)回复于 2005-04-07 19:44:27 得分 0
做的很好,多加努力啊!!!Top
84 楼hjunxu(hjun)回复于 2005-04-07 20:56:15 得分 0
18:写一个类模拟cin和cout:
class MyCout {
public:
MyCout & operator <<(int a) {
printf(""%d"", a);
return *this;
}
}
这也算啊。
层级继承,多极继承 是什么概念?Top
85 楼raymond323(raymond)回复于 2005-04-08 09:06:55 得分 0
不错不错
UP
Top
86 楼linkingshen(linking)回复于 2005-04-08 09:30:22 得分 0
很有学习价值,赞!Top
87 楼joephoenix(迎风的狼)回复于 2005-04-08 10:14:17 得分 0
mark!!有助于基础的巩固!!
顶一个!!
为老迈把我抓壮丁而努力!!Top




