参数初始化表调用复制构造函数的证明
来源:互联网 发布:sql distinct * 用法 编辑:程序博客网 时间:2024/06/08 21:30
#include<iostream>
using namespace std;
class A
{
public:
A()
{
cout<<"A"<<endl;
}
~A()
{
cout<<"~A"<<endl;
}
};
class B
{
public:
B(A &a):_a(a)//此处实际调用的是a的copy构造函数
{
cout<<"B"<<endl;
}
~B()
{
cout<<"~B"<<endl;
}
private:
A _a;
};
int main()
{
A a;
B b(a);
return 0;
}
少了一个A的原因是,构造A时调用的是copy构造函数,只要自定义构造函数时加上 cout<<"cpy_A"<<endl; 即可,之后代码为:
#include<iostream>
using namespace std;
class A
{
public:
A()
{
cout<<"A"<<endl;
}
A(const A& a)
{
cout<<"cpy_A"<<endl;
}
~A()
{
cout<<"~A"<<endl;
}
};
class B
{
public:
B(A &a):_a(a)
{
cout<<"B"<<endl;
}
~B()
{
cout<<"~B"<<endl;
}
private:
A _a;
};
int main()
{
A a;
B b(a);
return 0;
}
可见调用了其copy构造函数
- 参数初始化表调用复制构造函数的证明
- 复制构造函数的调用
- 1.构造函数和复制构造函数相关的初始化
- 构造函数中指针参数的初始化
- 构造函数、初始化列表的调用顺序
- 在构造函数的参数化列表中调用基类构造函数初始化继承来的成员变量
- 在构造函数的参数化列表中调用基类构造函数初始化继承来的成员变量
- C++ 复制构造函数的调用
- 复制构造函数的定义及调用
- 类的复制构造函数调用
- 复制构造函数的不同调用
- 关于复制构造函数的调用时机
- c++ 构造函数初始化列表,构造函数的调用顺序
- 构造函数和复制构造函数的调用时机
- 初始化数组/容器时,调用默认构造函数还是复制构造函数
- (总结)C++的构造函数(初始化列表,缺省/复制和带默认参数的构造函数)和析构函数详解
- 构造函数的初始化表
- 三角形类的构造函数-使用参数初始化表对数据成员初始化
- Delphi-IP地址的隐藏
- 今天升级到chromium V21引发的对自由开源的感想!
- PCRE-C语言正则表达式
- 在Delphi中隐藏程序进程
- 团队项目开发"编码规范"之一:概述
- 参数初始化表调用复制构造函数的证明
- Delphi隐藏进程
- 团队项目开发"编码规范"之二:代码外观
- 根据进程名,查找并结束进程
- Mac:变更OS X 10.7.4的Login窗口背景
- MySQL数据库优化的一些笔记
- WinAPI: GetClassName - 获取指定窗口的类名
- 1.38 目录页产品下一行排列四个商品的
- 团队项目开发"编码规范"之三:程序注释