#include<iostream>
using namespace std;
struct CLS
{
int m_i;
CLS(int i) : m_i(i)
{
cout<<"CLS(): this="<<this<<endl;
}
CLS()
{
CLS(0);
cout<<"CLS(int): this="<<this<<endl;
}
};
int main()
{
CLS obj;
cout<<"&obj="<<&obj<<endl;
cout<<obj.m_i<<endl;
return 0;
}
/*
可以看到,在带参数的构造函数里打印出来的对象地址
和对象obj的地址不一致。
实际上 代码13行的调用只是在栈上生成了一个临时对象
对于自己本身毫无影响
还可以发现
构造函数的互相调用引起的后果不是死循环 而是栈溢出
*/
不带参数的构造函数调用带参数的构造函数
最新推荐文章于 2023-09-11 22:30:00 发布