本文转载自http://www.cnblogs.com/graphics/archive/2010/07/04/1770900.html感谢作者分享何谓初始化列表与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。在C...
分类:
编程语言 时间:
2015-10-26 09:17:56
阅读次数:
184
构造函数使用本体括号进行复制的情况不叫做初始化而是叫做赋值语句,只有在成员初始化列表中直接进行的 才叫做初始化。ABentry::AbEntry(const std::string & name, const std::string & address, ...
分类:
其他好文 时间:
2015-10-04 20:54:45
阅读次数:
207
有两种原因需要使用初始化列表:让我们先看一下第一个原因——必要性。(1)对另一个类成员的初始化,(2)成员是一个常量对象,(3)成员是引用。根本原因:编译器总是确保所有成员对象在构造函数体执行之前(初始化列表之后)被初始化。使用初始化列表的第二个原因是出于效率考虑,当成员类具有一个缺省的构造函数和一...
分类:
编程语言 时间:
2015-09-22 07:44:05
阅读次数:
139
(1)当未定义时,编译器会自动生成:构造函数,拷贝构造函数,析构函数,赋值构造函数。1. 构造函数与析构函数:初始化列表:(1)构造函数的初始化列表里发生在下面函数体的前面。(2)可以在初始化列表里向基类的特定构造函数传递参数。(3)类的非静态const成员和引用成员只能在初始化列表里初始化,因为他...
分类:
其他好文 时间:
2015-09-15 16:23:38
阅读次数:
128
静态变量必须初始化(类型private除外,不初始化编译错误)初始化必须在类外,不包含static关键字、并且用类名修饰 int A::a = 1;常量静态的整形数据成员可以在声明的时候初始化。常量类型和引用类型,必须在构造函数初始化列表中初始化初始化的顺序是根据变量的声明顺序
分类:
编程语言 时间:
2015-09-09 19:26:50
阅读次数:
148
声明template参数时, 前缀关键字class和typename可以互换;使用关键字typename标识嵌套从属类型名称, 但不需在基类列表和成员初始化列表内使用.从属名称(dependent names): 模板(template)内出现的名称, 相依于某个模板(template)参数, 如T...
分类:
其他好文 时间:
2015-09-09 19:13:57
阅读次数:
147
[1] string基础[1.1] string 的构造 1 #include 2 #include 3 4 int main() 5 { 6 using namespace std; 7 8 cout il:将string对象初始化为初始化列表il中的字符[C++11新特性...
分类:
编程语言 时间:
2015-09-09 18:56:54
阅读次数:
191
1. 顺序 先调用基类的构造函数,再调用派生类构造函数。析构顺序相反。2. 构造函数 派生类 不用初始化列表调用基类构造函数->调用基类的默认构造函数 派生类 使用初始化列表调用基类带参构造函数->调用基类相关的带参构造函数 若派生类有多个构造函数版本,其中任意一个基类的构造函数不匹配,都会...
分类:
编程语言 时间:
2015-09-06 14:35:30
阅读次数:
221
参考资料:1.黄邦勇帅2.http://blog.163.com/sunshine_linting/blog/static/448933232011810101848652/3.http://www.cnblogs.com/zhoug2020/archive/2012/08/31/2665451.h...
分类:
编程语言 时间:
2015-09-05 16:23:40
阅读次数:
225
class A { ... private: int &a; }; class B : public A { ... private: int a; public: const int b; A c; static const char* d; A* e; }; 答案是 b c 构造函数初始化时必须...
分类:
其他好文 时间:
2015-09-01 01:21:54
阅读次数:
133