1.  拷贝构造函数 //并没有搞懂 先存着吧  遇到实际情况再回来看看

拷贝构造函数在以下三种情况被调用:
(1)当用一个已经初始化过的对象去初始化同类另一个对象时,
拷贝构造函数被调用。
Sample S2(S1);
Sample S2 = S1;
(2)如果某函数有一个参数是类 A 的对象,那么该函数被调用
时,类A的拷贝构造函数将被调用
void f( A a )
{
a.x = 1;
};
A aObj;
f ( aObj) ;
// 导致A的拷贝构造函数被调用,生成形参传入函数
71(3)如果函数的返回值是类A的对象时,则函数返回时,A的拷
贝构造函数被 调用
A f( )
{
A a;
return a; // 此时A的拷贝构造函数被调用,即调用A(a);
}
int main( )
{
A b;
b = f();
return 0;
}
 
 
2.析构函数不能带任何参数,也没有返回值(void类型也不行)。一个类最多只能有一个析构函数,不能重载。
 
 
3.构造函数和析构函数的调用顺序
(1)对于全局定义的对象(在函数体外定义的对象)   class完以后马上接对象
在程序开始执行时(包括main()函数在内的所有函数执行之前)调用构造函数,到程序结束或调用exit()函数终止程序时才调用析构函数。
 
(2)对于局部定义的对象(在函数内定义的对象) 在main函数里一个一个定义对象
在程序执行到定义对象的地方时调用构造函数,到函数结束时才调用析构函数。
 
(3)用static定义的局部对象
在首次到达对象定义位置时调用构造函数,在程序结束时调用析构函数。
 
(4)对于用new运算符动态生成的对象
在产生对象时调用构造函数,只有用delete释放对象时,才调用析构函数。若不使用delete运算符来撤销动态生成的对象,则析构函数不会被调用。
 
 
 
4.静态成员
静态数据成员
 
(1)不管一个类的对象有多少个,其每个静态数据成员都只有一个,由这些对象所共享,可被任何一个对象所访问。如果该类的某个对象修改了静态数据成员的值,那么,其他所有同类的对象都将共享被修改后的数值。
 
(2)在一个类的对象空间内,不包含静态成员的空间,所以静态成员所在空间不会随着对象的产生而分配,或随着对象的消失而回收。
 
(3)静态数据成员存储空间的分配是在程序一开始运行时就被分配的,并不是在程序运行过程中在某一函数内分配空间和初始化。
 
(4)静态数据成员的初始化语句,既不属于任何类,也不属于包括主函数在内的任何函数,静态数据成员初始化语句应当写在程序的全局区域中,并且必须指明其数据类型与所属的类名。
 
(5)如果未对静态数据成员赋初值,则编译系统会自动赋予初值0。
 
静态成员函数
(1)出现在类体外的静态成员函数定义不能指定关键字static。
 
(2)静态成员函数之间可以相互访问,包括静态成员函数访问静态数据成员和访问静态成员函数。
 
(3)非静态成员函数可以任意地访问静态成员函数和静态数据成员。
 
(4)静态成员函数不能直接访问非静态成员函数和非静态数据成员。
 
 

最新文章

  1. 泛型(Generics)
  2. BZOJ 1014 【JSOI2008】 火星人prefix
  3. 获取网卡的MAC地址原码;目前支持WIN/LINUX系统 获取机器网卡的物理(MAC)地址(服务器端)
  4. fedora23忘记root密码怎么办??
  5. 15. javacript高级程序设计-Canvas绘图
  6. JS手册目录
  7. php unicode
  8. linux笔记_文件搜索命令
  9. 解决“重新安装vmware-tools”灰色而无法安装的问题
  10. 【转】在rman增量备份中,有差异增量和累积增量的概念
  11. String是java中的基本数据类型吗
  12. 如何在Eclipse配置Tomcat服务器
  13. Android启动Activity
  14. SSM框架中写sql在dao文件中以注解的方式
  15. Android JNI 学习(三):JNI 数据类型和数据结构
  16. PHP查看编译参数
  17. P4574 [CQOI2013]二进制A+B
  18. shell 命令 grep -v
  19. [学习笔记]BSGS
  20. veterbi

热门文章

  1. tensorflow学习之tf.truncated_normal和tf.random_noraml的区别
  2. Android - Retrofit 2.0 使用教程(含实例讲解)
  3. jQuery与JavaScript与ajax三者的区别与联系(转)
  4. [转帖]CBO和RBO
  5. 关于postman
  6. Mysql常用时间函数的用法和应用
  7. 补充[BNDSOJ]小p的数列
  8. POJ 3135 Polygons on the Grid(枚举+凸包)
  9. 小白学Python——Matplotlib 学习(2):pyplot 画图
  10. 搜索专题: HDU1312Red and Black