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. 【EWM系列】SAP EWM中仓库任务WT创建的函数

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[EWM系列]SAP EWM中仓库任务WT创建的 ...

  2. hadoop 2.5.2源码编译

    编译过程漫长无比,错误百出,需要耐心耐心!! 1.准备的环境及软件 操作系统:Centos6.4 64位 jdk:jdk-7u80-linux-x64.rpm,不要使用1.8 maven:apache ...

  3. Grass Planting

    大致题意: 维护一棵树,支持两种操作: P x y x到y路径上的每条边的值+1:Q x y 询问x到y路径上所有边的值的和.Input第一行两个正整数,N,M表示点数和操作数:接下来N-1行每行两个 ...

  4. Android - Android 面试题集

    1.Java部分 1.1 操作系统相关 1.什么是操作系统? 2.什么是线程,什么是进程? 1.2 JDK&JVM&JRE 1.JDK & JVM & JRE分别是什么 ...

  5. ActiveMQ学习教程/2.简单示例

    ActiveMQ学习教程(二)——简单示例 一.应用IDEA构建Maven项目 File->New->Module...->Maven->勾选->选择->Next ...

  6. jQuery中this与$(this)的区别总结

    这里就谈谈this与$(this)的区别. 1.jQuery中this与$(this)的区别 $("#textbox").hover( function() { this.titl ...

  7. 使用ntpdate 同步 linux的时间

    1. linux 查看时间和时区的命令 timedatectl 效果为: Local time: Sun -- :: CST Universal time: Sun -- :: UTC RTC tim ...

  8. 任务调度之 Quartz

    任务调度的背景 在业务系统中有很多这样的场景: 账单日或者还款日上午 10 点,给每个信用卡客户发送账单通知,还款通知.如何判断客户的账单日.还款日,完成通知的发送? 银行业务系统,夜间要完成跑批的一 ...

  9. [BZOJ 2154]Crash的数字表格(莫比乌斯反演+数论分块)

    [BZOJ 2154]Crash的数字表格(莫比乌斯反演+数论分块) 题面 求 \[\sum_{i=1}^{n} \sum_{j=1}^{m} \mathrm{lcm}(i,j)\] 分析 \[\su ...

  10. 1、Java语言概述与开发环境——JDK的安装与环境变量的配置

    Selenium.Appium.Macaca.RobotFramework.Jmeter等框架或工具均必须的一样东西——JDK,也就是基于java开发的东西都要这个东西.JDK的概念在这里不作描述. ...