江天保为什么会变坏:c++中构造函数和初始化链表有什么区别.

来源:百度文库 编辑:高考问答 时间:2024/05/09 20:04:37
如果说构造函数可以初始化任何类,那为什么会有初始化链表的存在.
还有,链表不能初始化基本成员函数和私有数据成员的说法对吗?

妈的,老师太扯淡,全他妈垃圾...

还望高手指点啊,我都郁闷死了....

初始化列表,
不是初始化链表了.

构造函数可以初始化任何类,到底对不对啊,
还是没有人回答到这一点.

对于指针链表是不需要初始化的
到是析构的时候需要将链表中的内存全部delete掉
否则也许不会报错
但是可能会遇到麻烦
其他的链表我用的很少
不太清楚了,你可以查一下MSDN

还有你说构造函数初始化类?
应该说是每个类都有其构造函数,这个类是用他自己的构造函数来初始化他的成员变量的,无论公有还是私有的.

1. 初始化列表绝对可以初始化私有数据成员.至于"成员函数"那是不需要初始化的. ^_^
2. 初始化列表的存在是由于以下众多因素:
<1> 如果你的数据成员中有const对象,那你是无法在构造函数体内将它赋值的,因为const对象只能初始化不能赋值.这就要求你必须在初始化列表中对它进行给值动作.
<2> 如果一个派生类需要构造它的基类部分,也需要在初始化列表中进行,任何其他地方都不可能完成这项任务.
<3> 效率问题.如果你的数据成员中有类对象,那么你在构造函数体内来对这个对象赋值的话,要进行2个步骤:先将这个类对象用它的默认构造函数初始化,然后调用它的operator =()对它赋值,这要消耗2个函数的成本。而在初始化列表中,只需要进行一步:调用那个类的有参数的构造函数将它直接初始化为某个值.这样提高了效率.

就这么多啦,^_^