我不习惯C++,而且在写一个构造函数时遇到了问题。
看到这个例子,是我工作的代码的短版:C++如何写一个构造函数?
class B {
public:
B(int x);
}
class A {
public:
B b;
A(){
// here I have to initialize b
}
}
,因为我需要在构造函数初始化B,因为B没有默认的构造函数抛出一个编译器错误。我想我已经在初始化列表中做了它,但B(int x)参数是一个值,我必须用一些算法来计算,所以我不知道这应该如何正确完成,或者如果我错过了某些东西或做错了。
在像java这样的其他语言中,我会有一个对B的引用,并在我需要获取初始化值的其他代码之后,将它初始化为A的构造函数。
在这种情况下,初始化b的正确方法是什么?
谢谢!
谢谢,这工作。艰难的我认为可能有更好的/更清洁的方式。 – Damian 2011-04-01 00:06:34
还要确保在成员初始值设定项列表中使用的函数不会抛出任何异常。 :) – Viren 2011-04-01 00:20:26
虽然这个作品...它必须是那么可怕?这使得我所有的相关代码都在文件周围混合了。一边的对象构造,另一边的对象配置等等......也许最好有一个默认的构造函数来创建一个不工作的实例,然后在构造函数中创建一个新的实例。你怎么看? – Damian 2011-04-01 03:01:00