多重继承的派生类的构造函数初始值只能初始化它的直接基类派生类的构造函数初始化列表将实参分别传递给每个直接基类,其中基类的构造顺序与派生列表中基类的出现顺序保持一致,而与派生类构造函数初始化列表中基类的顺序无关。类型转换与多个基类编译器不会在派生类向基类的几种转换中进行比较和选择,因为在它看来转换到任...
分类:
编程语言 时间:
2014-07-16 19:03:52
阅读次数:
197
1.字节边界对齐 提高读写速度2.构造函数尽量使用初始化列表(不然对象类型会有一次默认构造 初始值)3.尽量使用前置++ ,因为后置++会生成临时对象4.不要用结构体着函数返回值 struct a; a=f(1) ; 会生成临时对象 struct a = f(1); 这样不会生成临时对象5....
分类:
其他好文 时间:
2014-07-15 22:57:36
阅读次数:
313
构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。例如:class Example {public: int a; float b; //构造函数初始化列表 CExample(): a(0),b(8.8) {}...
分类:
编程语言 时间:
2014-07-11 19:30:03
阅读次数:
182
有关const成员、static成员、const static成员的初始化:
1、const成员:只能在构造函数后的初始化列表中初始化
2、static成员:初始化在类外,且不加static修饰
3、const static成员:类只有唯一一份拷贝,且数值不能改变。因此,可以在类中声明处初始化,也可以像static在类外初始化
#include
using std::cout;
...
分类:
编程语言 时间:
2014-07-11 08:16:29
阅读次数:
299
注意:1. 引用成员变量 必须在构造函数的初始化列表中进行初始化2. 引用成员变量 并不为这个变量新辟空间;类对象做成员变量则是要对其新辟一段空间的。如下代码中,使用date1做参数初始化person_ref和person_obj。person_ref的birth字段date1为同一个地址空间,而p...
分类:
其他好文 时间:
2014-06-28 20:06:49
阅读次数:
191
一、 成员初始化列表的位置。成员初始化列表的位置位于构造函数的函数体和参数表之间。构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式,初始化式可以是表达式、派生类构造函数的形参还有其余常量。通过成员初始化表,类数据成员可以被显式初始化。成.....
分类:
编程语言 时间:
2014-06-28 11:06:37
阅读次数:
266
1,如果基类没有default构造函数,则意味着其不能自己初始化。如果其被派生,派生类的构造函数要负责调用基类的构造函数,并传递给它需要的参数。下例中Base2,如果类成员没有默认构造函数。下例中Elem42,如果类的成员变量中含有const成员变量,如果不使用列表,在构造函数中是不能对其赋值的,会...
分类:
其他好文 时间:
2014-06-27 21:41:06
阅读次数:
256
不规则数组是每一行的列数不一样的二维数组。
在了解不规则数组之前,先了解一下用复合字面量创建的二维数组。复合字面量是一种C构造,前面看起来像是类型转换操作,后面跟的是花括号括起来的初始化列表。
(const int) {100}
(int[3]) {1,2,3}...
分类:
编程语言 时间:
2014-06-22 19:40:54
阅读次数:
163
1.类的静态成员
static成员变量与函数
static成员变量:必须在类外初始化;(const或引用类型变量必须在构造函数初始化列表里初始化)
static成员函数:
不依赖于类,相当于类里的全局函数(可以由该类对象调用,也可以 类名::函数名()的形式调用)
不包含this指针,不能声明为const,声明为const表示不会改变对象,而stati...
分类:
编程语言 时间:
2014-06-20 09:27:05
阅读次数:
355
声明template参数时,
前缀关键字class和typename可以互换;使用关键字typename标识嵌套从属类型名称,
但不需在基类列表和成员初始化列表内使用.从属名称(dependent names):模板(template)内出现的名称,
相依于某个模板(template)参数, 如T ...
分类:
编程语言 时间:
2014-06-06 19:06:45
阅读次数:
287