今日学习:C++基础 day3
#if 0
.........
#endif
可以用来屏蔽大段代码,解决嵌套注释
#if 0的本质作用是删除代码,在成熟的版本管理下,直接删除就行了,留下一堆#if 0会让代码显得臃肿,Makefile也无法控制其开关。 而#if XXX表明其内部代码是有明确意义的,很多时候还可以通过Makefile进行控制,所以可以保留。 另外也可以看到,几乎所有的开源项目,都不会有#if 0代码,但是#if XXX这种非常多。#if 0只有本地调试时可以用。
构造函数是对象初始化的时候调用
Test t3=t1 //初始化t3的时候调用t3构造函数,调用的是t3的拷贝构造函数
Test t3;
t3=t1; //调用的不是t3拷贝构造函数,而是t3的赋值操作符函数
默认的无参构造函数
当没有任何显示的构造函数,默认无参构造函数存在
默认拷贝构造函数
当没有显示的拷贝构造函数,默认拷贝构造函数存在
深拷贝需要显示拷贝构造函数
默认析构函数
当没有显示的析构函数,默认析构函数存在
没有需要释放空间的操作则不需要显示写析构函数
不需要手动调用析构函数
析构函数调用的顺序跟构造函数相反
new在堆上初始化一个对象的时候,会触发对象的构造函数,malloc不会
同样free不能触发一个对象的析构函数
static成员类外存储,求类大小,并不包含在内
public的静态变量可以通过类名访问或对象访问
private的静态变量不能在外部出现,只有通过static成员方法访问