首页 > 代码库 > 假定CSomething是一个类,执行下面这些语句之后,内存里创建了____个CSomething对象。

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

CSomething a();
CSomething b(2);
CSomething c[3];
CSomething &ra = b;
CSomething d=b;
CSomething *pA = c;
CSomething *p = new CSomething(4);
 
 
CSomething a();// 没有创建对象,这里不是使用默认构造函数,而是定义了一个函数,在C++ Primer393页中有说明。
CSomething b(2);//使用一个参数的构造函数,创建了一个对象。
CSomething c[3];//使用无参构造函数,创建了3个对象。
CSomething &ra=b;//ra引用b,没有创建新对象。
CSomething d=b;//使用拷贝构造函数,创建了一个新的对象d。
CSomething *pA = c;//创建指针,指向对象c,没有构造新对象。
CSomething *p = new CSomething(4);//新建一个对象。
//综上,一共创建了6个对象。个人理解,如有错误,还请大神指出。
 
CSomething a();                                            只是个函数声明
CSomething b(2);                                            +1
CSomething c[3];                                            +3,对象数组
CSomething &ra = b;                                       引用,没有新构造
CSomething d=b;                                            +1,调用拷贝构造函数
CSomething *pA = c;                                        只是给指针赋值
CSomething *p = new CSomething(4);            +1,构造并给指针赋值
总共6个
 
CSomething a();// 定义一个函数,参数为空,返回值为CSomething对象, 类似int func();  
 
    CSomething a; // 定义对象a,使用默认构造函数CSomething::CSomething() 
 
    CSomething a(0); // 定义对象a,使用构造函数CSomething::CSomething(int)

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