主题:[讨论]帮忙解答 赢高分
jinxiaomiss
[专家分:0] 发布于 2009-10-04 22:54:00
class Point
{
int x_,y_;
public:
Point():x_(0),y_(0){}
Point(int x,int y=0):x_(x),y_(y){}
};
若执行语句
Point a(2),b[3],*c[4];
则Point类的构造函数被调用的次数是:_______
我想知道具体一点 请各位不吝赐教 本人感激不尽
回复列表 (共3个回复)
沙发
QXVC [专家分:60] 发布于 2009-10-08 14:04:00
构造函数被调用了四次。其中:
第一次是声明对象a(2),调用带默参的Point(int x, int y=0):x_(x),y_(y){}
第二到第四次是声明对象数组b[3]时调用了不带默参得构造函数Point():x_(0), y(0){}
最后声明得对象指针数组c[4]时,不会调用构造函数的。
你可以自己动手改写代码,方便观察构造函数调用的情况,如:
class Point
{
int x_,y_;
public:
Point():x_(0),y_(0)
{
cout<<"Point() called..."<<endl;
}
Point(int x,int y=0):x_(x),y_(y)
{
cout<<"Point(int, int) called..."<<endl;
}
};
这样你就可以清楚的看到程序运行时构造函数的调用情况了。
希望能帮到你,谢谢!
板凳
jinxiaomiss [专家分:0] 发布于 2009-10-09 00:04:00
看了你的解答 颇有感悟 谢谢
3 楼
QXVC [专家分:60] 发布于 2009-10-09 00:31:00
呵呵~一起学习[em2]
我来回复