返回信息流1 #include<iostream>
2 using namespace std;
3
4 class IntTest
5 {
6 private:
7 int n;
8 public:
9 IntTest(int m=0)
10 {
11 n=m;
12 cout<<n<<endl;
13 }
14 IntTest(const IntTest& c)
15 {
16 n=c.n;
17 cout<<n<<endl;
18 }
19 ~IntTest(){cout<<"aiya"<<endl;}
20 int GetN(){return n;}
21 };
22
23 IntTest MakeIntTest(int n)
24 {
25 IntTest temp(n);
26 return temp;
27 }
28
29 int main()
30 {
31 IntTest c;
32 c=MakeIntTest(2);
33 c.GetN();
34 }
输出是
0
2
2
aiya
aiya
aiya
为什么第一个是0,而不是2
p.s.这个程序就是为了讲值返回方式返回对象。
这是一条镜像帖。来源:北邮人论坛 / cpp / #74949同步于 2013/10/31
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
求帮看下c++,书里的程序,复制构造函数
baiyixk
2013/10/31镜像同步10 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
IntTest c;调用默认构造函数构造了对象,调用这个构造函数IntTest(int m=0)
{
n=m;
cout<<n<<endl;
}
所以就是0了,第二个输出2就是调用函数MakeIntTest(2),然后给对象c使用复制构造函数