返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #5608同步于 2008/4/28
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
构造函数中还可以调用该类的另一个构造函数么?
maroon
2008/4/28镜像同步12 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
有必要,比如在无参构造里就可以调用有参构造函数来初始化
或者多个有参构造用一个有参构造实现
【 在 Nathan (Nathan Petrelli) 的大作中提到: 】
: 没必要这样吧。。
: 1个类可以有多个构造函数。。
如果直接调用,只是会产生一个匿名的临时对象,并没有真正的初始化。
http://www.cnblogs.com/chio/archive/2007/10/20/931043.html
应该用new (this)+要调用的构造函数
【 在 noname 的大作中提到: 】
: 如果直接调用,只是会产生一个匿名的临时对象,并没有真正的初始化。
: http://www.cnblogs.com/chio/archive/2007/10/20/931043.html
: 应该用new (this)+要调用的构造函数
牛人,难怪结果不对,原来是这样 如果直接调用,只是会产生一个匿名的临时对象,并没有真正的初始化。
直接设置默认参数不就可以了?
于是觉得还是没有必要
【 在 purevirtual (天之健) 的大作中提到: 】
: 有必要,比如在无参构造里就可以调用有参构造函数来初始化
: 或者多个有参构造用一个有参构造实现
恩,ls有个帖子已经说了,不是没必要,而是不能这样,因为这样没有真正的初始化....
【 在 quark (quark) 的大作中提到: 】
: 直接设置默认参数不就可以了?
: 于是觉得还是没有必要
我的意思是:
class foo
{
public:
foo(const int x = 0)
{
.....
}
};
这样不行吗?
【 在 purevirtual 的大作中提到: 】
: 恩,ls有个帖子已经说了,不是没必要,而是不能这样,因为这样没有真正的初始化....
当然可以了
【 在 quark (quark) 的大作中提到: 】
: 我的意思是:
: class foo
: {
: ...................
但是如果我有好几个有参构造呢?你那样也并不省事啊;
比如:
class foo{
int a;
char b;
double c;
public:
foo(int a=10, char b='g',double c=1.1){}
//这样当然可以满足绝大部分的需要,但是如果我只想给b指定一个值,a,c要默认的值呢?
那就需要再写一个;
foo(char b){}
}
【 在 quark (quark) 的大作中提到: 】
: 我的意思是:
: class foo
: {
: ...................