我想在调用第二个构造函数之前做一些处理。例如:
class Foo {
Foo(){ displayWindow(); }
//This is possible
Foo(int bar) : Foo() { windowSize = bar; }
//But how do I do processing before calling the second constructor?
Foo(int bar, int baz) {
addLabel(baz); // prototype = void addLabel(int)
Foo(bar);
}
}
我如何完成这个(不使用初始化函数)?
编辑:我更新了示例。它现在表明默认构造函数必须最后出现。否则,displayWindow 将不会考虑任何更新的变量。
最佳答案
像这样:
Foo(int bar, int baz) :
Foo(initializeAnotherStaticLibrary(bar, baz) == -1 ? bar : baz)
{
}
(请注意,委托(delegate)构造函数是仅在 C++11 及更高版本中支持的功能。)
关于c++ - 执行某些代码后可以显式调用构造函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12113127/