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)静态成员函数不能直接访问非静态成员函数和非静态数据成员。
 
 

c++复习——类(1)的更多相关文章

  1. C++复习:类和对象

    类和对象 基本概念 1)类.对象.成员变量.成员函数 2)面向对象三大概念 封装.继承.多态 3)编程实践     类的定义和对象的定义,对象的使用     求圆形的面积     定义Teacher类 ...

  2. Swift4.0复习类

    1.类的属性: 2.类的方法: 3.类作为引用类型: “Swift新增了一对操作符 === 与 !== 用于判定同一个类的两个对象引用是否指向同一对象实例.” 摘录来自: “大话Swift 4.0”. ...

  3. c++复习——类(2)

    1.this指针 this指针是一个指向对象的指针.  this指针是一个隐含于成员函数中的对象指针.  this指针是一个指向正在调用成员函数的对象的指针.  类的静态成员函数没有this指针 ...

  4. java面向对象复习之一

    目的: 复习如何实现代码的逻辑思路: 复习类的封装: 复习类和对象的创建使用和封装: 练习: 实现功能:人到超市买东西 抽出三个类: 人 超市 东西: 功能点: 买: 它们之间的联系:东西包含于超市 ...

  5. Java类的继承与多态特性-入门笔记

    相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...

  6. PyQt5(1)——Qt Designer初探

    相关环境配置我们就不介绍了(网上有很多教程) Qt Designer 是一款十分强大的GUI工具,生成的文件为 .UI文件  可以通过命令转化为Py文件,简单来说我们可以通过拖拽方式生成界面,在通过简 ...

  7. 2019全国大学生信息安全竞赛ciscn-writeup(4web)

    web1-JustSoso php伪协议获取源码 ?file=php://filter/read=convert.base64-encode/resource=index.php index.php ...

  8. 20200117 .net 001

    第一部分:面向对象 封装 继承(里氏转换) 多态第二部分:值类型.引用类型.字符串操作第三部分:集合文件操作第四部分:正则表达式第五部分:XML操作第六部分:委托.事件第七部分:反射. 1.变量的命名 ...

  9. .Net 笔记

    1.介绍 .net一般指.Net Framework框架.一种平台,一种技术. C#是一种编程语言,可以开发基于.net平台的应用. .Net Framework是框架是.Net平台不可缺少的一部分, ...

随机推荐

  1. 【MM系列】SAP MB5B中FI凭证摘要是激活的/结果可能不正确 的错误

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP MB5B中FI凭证摘要是激活 ...

  2. FacertGrid()的使用

    查看数据的前五行 tips = sns.load_dataset("tips") tips.head() 引入数据,布置横向画布 g = sns.FacetGrid(tips, c ...

  3. 应用安全 - CMS - Discuz漏洞汇总

    SSV-90861 Date:2012 类型:敏感信息泄露 影响范围:DZ x2.5  POC:http://www.xx.xx/uc_server/control/admin/db.php http ...

  4. Android - Retrofit 2.0 使用教程(含实例讲解)

    链接:https://blog.csdn.net/carson_ho/article/details/73732076

  5. [19/05/27-星期一] JavaScript_ 条件语句(if语句)和循环语句(while 、for、do-while)

    一.条件语句 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <ti ...

  6. 数据库 三范式 BCFN

    # 三范式 范式  设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小.  目前关系数据库有六种范式:第一 ...

  7. Java创建二叉树

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/yeweiouyang/article/details/37814461 二叉树的值保存在数组中,以0 ...

  8. ThinkPHP中的"路由"是什么意思?

    路由(route)是指根据url, 分配到对应的处理程序的映射. 简单来说,就是一个路径的解析,根据客户端提交的路径,将请求解析到相应的模块/控制器/方法上. 转载自:https://blog.csd ...

  9. Python基础2——数据类型的操作

    列表操作 列表.字符串.元组的切片总结: num=[1, 2, 3, 4, 5, 6] 1.切片是通过下面来切,下标可以正数,也可以是复数.注意:复数的话,最后一个值的下标为-1,往前面推导就是-1, ...

  10. 基于Red5与ffmpeg实现rtmp处理NVR或摄像头的监控视频处理方案

    背景 各大监控视频平台厂商与外对接均是基于IE的OCX插件方式提供实时视频查看.历史视频回放与历史视频下载.在h5已大行其道的当下,基于IE的OCX插件方式已满足不了广大客户的实际需求,因此需要一个兼 ...