鸡啄米
鸡啄米:C++编程入门系列之十五(类与对象:类的组合)›评论
-
14. 修改了下构造函数的提示信息:
Point(int xx,int yy)
{
X=xx;
Y=yy;
cout << "Point构造函数被调用" << endl;
cout << "Point" << X <<"." << Y << endl;
} //构造函数
Point::Point(Point &p)
{
X = p.X;
Y = p.Y;
cout << "Point拷贝构造函数被调用" << endl;
cout << "Point拷贝" << X <<"." << Y << endl;
}
int _tmain(int argc, _TCHAR* argv[])
{
int aa,bb,cc,dd;
// while(1)
{
// cout << "input point A" << endl;
// cin>>aa;
// cin>>bb;
// cout << "input point B" << endl;
// cin>>cc;
// cin>>dd;
aa=11;
bb=33;
cc=77;
dd=89;
Point myp1(aa,bb), myp2(cc,dd);
Distance myd(myp1, myp2);
cout << "The distance is:";
cout << myd.GetDis() << endl;
}
return 0;
}
Point构造函数被调用
Point11.33
Point构造函数被调用
Point77.89
Point拷贝构造函数被调用
Point拷贝77.89
Point拷贝构造函数被调用
Point拷贝11.33
Point拷贝构造函数被调用
Point拷贝11.33
Point拷贝构造函数被调用
Point拷贝77.89
Distance构造函数被调用
The distance is:86.5563
输出如下:
修改了下构造函数的提示信息 于 2014-5-4 11:33:56 回复楼主原来的构造函数的输出是没差别的输出,不知道哪个输出是对应哪个点的构造函数。2014/5/4 11:31
-
13. 天空:
同12楼,我也是那里糊涂,最后两次感觉调用的是构造函数。。。。。不是拷贝构造函数2013/9/29 11:21
-
12. looker:
Point类的拷贝构造函数被调用了4次,而且都是在Distance类构造函数执行之前进行的,在Distance构造函数进行实参和形参的结合时,也就是传入myp1和myp2的值时调用了两次,在用传入的值初始化内嵌对象p1和p2时又调用了两次。
这里,还没太搞懂。只知道“Distance myd(myp1, myp2);”这里调用了两次,另外两次,真的没搞明白。“Point myp1(1,1), myp2(4,5);”这里难道也要调用吗?这里不是调用的是“构造函数”吗,怎么会是“拷贝构造函数”呢?ljj 于 2014-8-6 10:31:00 回复把实参付给形参时有两次,把形参付给p1,p2时又两次,个人理解2013/4/7 20:15
-
11. 嘟嘟嘟:
写的很好哦。虽然这块我个人觉得很难,准备跳过去学其他的,但还是给个赞2013/3/5 14:39
-
10. Jaco:
真心感觉不错,最近一段时间我都在认真的看看。虽然以前学过C++,但是都忘得差不多了。重新来看,有了很多不同的感觉。鸡啄米 于 2012-12-12 23:29:48 回复其实即使是忘了,重新看也会有更多新的领悟,不同于没有接触过2012/12/12 14:15
发表评论