假定CSomething 是一个类,执行下面这些语句之后,内存中创建了多少个CSomething 对象。

时间:2025-03-14 22:52:39
CSomething a();//只是定义一个方法,方法返回一个CSomething对象 
CSomething b;//增加1个对象
CSomething c[3];//对象数组,增加3个对象
CSomething &ra=b;//引用不增加对象
CSomething d=b;//调用拷贝构造函数,增加1个对象
CSomething *pA=c;//地址赋值,不增加对象
CSomething *p=new CSomething;//在堆上构造一个对象,增加1个对象


所以最后一共有: 1+3+1+1 = 6个对象。

注:
在C++语言里,
String s2(s1);
String s3 = s1; 只是语法形式的不同,意义是一样的,都是定义加初始化,都调用拷贝构造函数。
下一个并非调用赋值运算符。