假定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)

转载于:https://www.cnblogs.com/guxuanqing/p/5886940.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值