C++之构造函数

来源:互联网 发布:手绘漫画工具淘宝 编辑:程序博客网 时间:2024/06/05 18:09
构造函数分几种,默认构造函数,构造函数,和复制构造函数。
需要特殊强调的是复制构造函数。编辑器主要在以下两种情况下调用复制构造函数。
1)类的对象作为实参时,会调用复制构造函数,将值传递给形参;
2)使用=操作符实现值传递,例如classX x=y; (y是classX的一个对象)
 
见代码:

#include <iostream>
using namespace std;

struct demo
{
    demo():mX(0){ cout<<"默认构造函数,mX="<<mX<<endl;}
    demo(int x):mX(x){ cout<<"构造函数,mX="<<mX<<endl;}
    demo(demo const& that):mX(that.mX){ cout<<"复制构造函数,mX="<<mX<<endl;}
    int mX;
};

demo addone(demo d)
{
    ++d.mX;
    return d;
}

int main()
{
    demo d1;
    demo d2(d1);
    demo d3(42);
    //demo temp=addone(d3);
    //demo d4(temp);
    demo d4(addone(d3));
    cout<<"Hello,world!"<<endl;
    return 0;
}

大家知道这个程序的运行结果是什么吗?猜一猜!
Thinking!!!!!!!!!!!!!!!!!!!!!!!!
答案是:
默认构造函数,mX=0
复制构造函数,mX=0
构造函数,mX=42
复制构造函数,mX=42
复制构造函数,mX=43
Hello,world!
请按任意键继续. . .


通过 Wiz 发布


0 0
原创粉丝点击