爱问知识人 爱问教育 医院库

在程序结束之前,共调用3个对象?

首页

在程序结束之前,共调用3个对象?

若example是已定义的类,在程序结束之前,共调用3个对象?若example是已定义的类,在程序结束之前,共调用3个对象?
#include “exemple”
main()
{example x(0);
x=5;
x.print();
x=example(10);
x.print();
}
我怎么只看出一个对象是example x(0)还有哪两个?

提交回答
好评回答
  • 2018-04-03 10:26:37
      1。 example x(0); 处调用构造函数一次初始化x;
    2。 x=5; 处编译器隐式调用构造函数example(5)一次初始化一个临时对象
    赋值给x;
    3。 x=example(10); 处显式调用构造函数example(10)一次初始化一个临时对象
    赋值给x;
    所以一共调用了3次对象。
       回答补充:显式调用指代码编写者直接在代码中写出函数调用表达式,如 example x(0); 和x=example(10); 就是直接写出了构造函数的调用表达式。 隐式调用是指C++编译器对代码进行编译优化后在生成的执行代码中加入的 函数调用, 如C++编译器对 x=5;进行编译优化后会生成近似于x=example(5); 这样的代码,对构造函数进行一次调用。
       注意,你这道题没有给出类example的定义,就很难给出一个标准答案,如果类example实现了const example& operator =(int nParam)运算符,则x=5;处 不会隐式调用构造函数,那就一共只调用了2次对象。
      这样的出题不太严密。 你的C++还需要加强学习,给你推荐两本书-->和>。

    宋***

    2018-04-03 10:26:37

其他答案

类似问题

换一换

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 175-194
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):