我要投稿

程序员面试题之解读构造函数

时间:2010-08-02 20:11 作者:ceshi123 阅读:2366

扫描二维码关注公众号,可以查询淘宝、京东商品优惠券
  近些日子,不记得构造函数的调用方式和顺序了,于是写了一段程序:

  1:  class A{

  2:      private :

  3:          int data;

  4:      public:

  5:          A(){

  6:              cout<<"调用默认构造函数"<<endl;

  7:

  8:          }

  9:          A(const A&){

  10:              cout<<"调用拷贝构造函数"<<endl;

  11:          }

  12:          A & operator=(const A&){

  13:              cout<<"调用赋值构造函数和"<<endl;

  14:          }

  15:

  16:          ~A(){

  17:              cout<<"调用析构函数"<<endl;

  18:          }

  19:

  20:          A(int i):data(i){

  21:              cout<<"调用自定义构造函数"<<endl;

  22:          }

  23:      };

  24:

  25:      A Play(A b){

  26:          return b;

  27:      }

  28:  int main()

  29:  {

  30:      A a;

  31:      A b=A(5);//隐式转换,调用Play(5)

  32:      A temp=a;

  33:      cout<<"main函数执行中..."<<endl;

  34:      return 0;

  35:  }

  运行后的结果为:



  从中可以看出函数的调用顺序了吧,第30行调用的是默认的构造函数,而31行调用自定义的函数,32行调用拷贝构造函数,接着是return返回的三次析构。其中注意隐式转换问题。

最新评论

我要投稿 我要评论
插入url链接 添加表情
限 100000 字节
响应相关主管单位规定,关闭回帖发帖功能
[VB毕业设计] [ASP毕业设计] [JAVA毕业设计] [JSP毕业设计] [PHP毕业设计] [asp.net毕业设计] [.net毕业设计] [网络毕业设计] [Delphi毕业设计] [VC毕业设计] [VF毕业设计] [机械毕业设计] [工艺毕业设计] [模具毕业设计] [其他毕业设计]
站长联系 cccbbsnet#163.com 本站系公益性质网站,站内广告维系本站运作。欢迎赞助本站。
大学生计算机相关方向|软件编程|网络工程|web开发|数据库技术|学习资料等
本社区仅供学习计算机相关技术所使用,访客发言不得违反国家法律法规
Time now is:04-19 23:21, Gzip enabled 蜀ICP备07004838号Powered by cccbbs.net v7.5 SP3 Code © 2003-06 cccbbs
计算机毕业设计