阅读程序写结果:

#include <iostream>
using namespace std;class A
{public:A();A(int i,int j);~A();void print();
private:int a,b;
};
A::A()
{a=b=0;cout<<"C"<<a<<"*   ";
}
A::A(int i,int j)
{a=i;b=j;cout<<"C"<<a<<"#   ";
}
void A::print()
{cout<<"P"<<a<<"   ";
}
A::~A()
{cout<<"D"<<a<<"   ";
}
int main()
{A*ptr;ptr=new A[3];//对象数组ptr[0]=A(1,2);//调用构造函数,销毁原有对象ptr[1]=A(3,4);//调用构造函数,销毁原有对象ptr->print();delete[]ptr;//调用析构函数return 0;
}

运行结果:


关于为啥ptr[0]=A(1,2);那会先调用构造函数,然后马上又调用个析构函数?

我的理解是这个亚子的~

ptr=new A[3];

//调用无参构造函数,创建对象数组(含3个A类对象)
【输出C0C0C0】

ptr[0]=A(1,2);

//调用有参构造函数,实例化一个A类对象,销毁ptr[0]处原有对象
【输出C1D1】

ptr[1]=A(3,4);

//调用有参构造函数,实例化一个A类对象,销毁ptr[1]处原有对象
【输出C3D3】

ptr->print();

//调用print函数
【输出P1】

delete[]ptr;

//销毁对象数组,调用析构函数(析构函数的调用顺序与构造函数相反)
【输出D0D3D1】

析构函数与构造函数的调用相关推荐

  1. C++继承中析构函数 构造函数的调用顺序以及虚析构函数

    首先说说构造函数.大家都知道构造函数里就能够调用成员变量,而继承中子类是把基类的成员变成自己的成员,那么也就是说子类在构造函数里就能够调用基类的成员了,这就说明创建子类的时候必须先调用基类的构造函数, ...

  2. c++——对象的构造和析构函数、构造函数的分类及调用

    1构造函数和析构函数的概念 有关构造函数 1构造函数定义及调用 1)C++中的类可以定义与类名相同的特殊成员函数,这种与类名相同的成员函数叫做构造函数: 2)构造函数在定义时可以有参数: 3)没有任何 ...

  3. 对象特性-----拷贝构造函数的调用

    C++中拷贝构造函数调用通常三种情况: ****使用一个已经创建完毕的对象来初始化一个新对象 ****值传递的方式给函数参数传值 ****以值方式返回局部对象 #include<iostream ...

  4. 拷贝构造函数的调用以及浅拷贝与深拷贝的理解

    今天一直在研究拷贝构造函数相关的东西,我这个大四老狗感觉又回到了大一学C++的时候.瞎捣鼓了一天,略微还是有些收获的,趁着脑子中的概念正热,把自己的心得赶紧整理出来分享给大家. ​       首先简 ...

  5. c++中的继承--2(继承中的析构函数和构造函数,继承中同名成员,继承中静态成员)

    继承中的构造函数和析构函数 继承中的构造和析构顺序 子类创建对象时,先调用父类的构造,然后调用自身构造 析构顺序与构造顺序相反 子类不会继承父类的构造函数和析构函数 如果父类中没有合适默认构造,那么子 ...

  6. c构造函数和析构函数_C ++构造函数,析构函数能力问题和答案(第2组)

    c构造函数和析构函数 C ++构造函数和析构函数能力问题列表 (List of C++ Constructor and Destructor Aptitude Questions & Answ ...

  7. c/c++教程 - 2.4.2.3~4 拷贝构造函数的调用时机,构造函数调用规则

    目录 4.2.3 拷贝构造函数的调用时机 4.2.4 构造函数调用规则 相关教程 4.2.3 拷贝构造函数的调用时机 C++中拷贝构造函数调用时机,通常有三种情况: 使用一个已经创建完毕的对象来初始化 ...

  8. c++中拷贝构造函数被调用的时机

    1 c++中拷贝构造函数被调用的时机 拷贝构造函数被调用的几种情况: (1)当用类的一个对象去初始化该类的另一个对象时,系统会自动调用拷贝构造函数: (2)将一个对象作为实参传递给一个非引用类型的形参 ...

  9. c++的构造函数极其调用(无参构造函数,有参构造函数,拷贝构造函数)

    1.c++编译器会自动调用构造函数 //构造函数(与类名相同) //析构函数:没有参数也没有任何返回类型,被自动调用 #include<iostream> using namespace ...

最新文章

  1. java 反射 修改字段_Java反射机制-修改字段值
  2. Android HTTP2 + Oauth2 + Jwt 接口认证实例
  3. Linux 调度器发展简述
  4. 在线用户管理--ESFramework 4.0 进阶(05)
  5. 关于汉诺塔,C++代码,代码效果演算
  6. 魔方游戏实现:任意阶魔方的表示
  7. Qt网络编程之实例一GET方式
  8. mysql处理时间_MYSQL时间处理  (转)
  9. c++将文本中的字符串一次读入到内存
  10. 使用率激增250%,这份报告再将 Serverless 推向幕前
  11. drools规则引擎中易混淆语法分析_相互触发导致死循环分析
  12. 【软件】一个简单好用的取色器TakeColor(百度云免费下载链接)
  13. Code-NFine:jqgrid 数据绑定
  14. 一起学JAVA 学习路径 知识体系
  15. 数据结构与算法-散列表
  16. C#报表开发工具ReportViewer vs Stimulsoft Reports.Net
  17. 刘润对话卫哲:阿里巴巴唯一生产的产品,就是干部
  18. VsCode打开终端的方法
  19. 为什么Proxy一定要配合Reflect使用?
  20. 目标检测等相关评价指标(AP AR Average Precision和Average Recall)

热门文章

  1. SpringMVC-开启静态资源访问权限
  2. Spring的事务控制-基于xml方式
  3. The POM for com.ruifeng.tjtaxiqy:shiro:jar:0.0.1-SNAPSHOT is missing, no dependency information avai
  4. C#——继承[模拟Server类]初始化过程顺序DMEO
  5. MySQL——查询数据库、数据表总记录数
  6. C/C++、JAVA、Python简单运行速度实验与分析
  7. 长春理工大学第十四届程序设计竞赛
  8. Bear and Finding Criminals
  9. 高校学院计算机实验室管理系统概述,高校实验室管理系统
  10. 2006年中国软件收入规模前100家企业名单