我试图实现这样的目标:
class Base
{
public:
Base(string S)
{
...
};
}
class Derived: Base
{
public:
int foo;
string bar()
{
return stringof(foo); // actually, something more complex
};
Derived(int f) : foo(f), Base(bar())
{
};
}
现在,这不能按我的意愿工作,因为在初始化 foo 之前在 Derived 构造函数中调用了 bar() 。
我考虑添加一个类似于 bar() 的静态函数,它以 foo 作为参数 - 并在初始化列表中使用它,但我想我会问是否有任何其他技术可以用来从这个中挖掘自己。 ..
编辑:感谢您的反馈 - 这是我将如何处理静态函数。不确定静态和非静态函数之间的重载是否太聪明了,但是......
class Derived: Base
{
public:
int foo;
static string bar(int f)
{
return stringof(f); // actually, something more complex
}
string bar()
{
return bar(foo);
};
Derived(int f) : Base(bar(f)) , foo(f)
{
};
}