鸡啄米
鸡啄米:C++编程入门系列之十五(类与对象:类的组合)›评论
-
19. 小零儿呀:
把Point的拷贝构造函数cout那句改成
cout << "Point拷贝构造函数被调用(" << X << "," << Y << ")" <<endl;
就能清楚的看到拷贝的是哪个
运行结果:
Point拷贝构造函数被调用(4,5)
Point拷贝构造函数被调用(1,1)
Point拷贝构造函数被调用(1,1)
Point拷贝构造函数被调用(4,5)
Distance构造函数被调用
The distance is: 5
请按任意键继续. . .
因此是myp2传给b,myp1传给a(实参传给形参),再是a传给p1,b传给p22019/5/27 11:50
-
18. 123:
我自己编译了一下,把类名Distance改成小写的distance就编译不过。难道在vs中distance也是被系统征用的一个函数名吗2019/2/27 13:53
-
17. 小苏:
第一次看迷糊了。。。。2017/10/24 15:42
-
16. 平庸虔诚某大学狗:
不啰嗦,调用组合类的构造函数时,首先(Point)myp1赋值给a,调用拷贝构造一次,同理,myp2赋值给b,这是第二次调用拷贝构造!然后!由于组合类创建对象,首先初始化组合类中的对象,即p2(b),把b赋值给p2,为什么是它?因为参数列表从右向左!又调用一次拷贝构造函数!同理,p1(a),又一次拷贝!!!所以一共4次!其他大概都容易理解的CUG 于 2017-8-6 15:06:56 回复p1(a)不是初始化吧,不应该调用复制构造函数;而且程序有些问题,因为Point类没有默认的构造函数。2016/3/4 22:12
-
15. Regin:
VS2013里为什么必须要加#include "stdafx.h"的头文件才可以运行啊?2014/8/19 16:02
发表评论