我想在调用第二个构造函数之前做一些处理.例如:
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);
}
}Run Code Online (Sandbox Code Playgroud)
我如何实现这一目标(不使用初始化函数)?
编辑:我更新了这个例子.它现在显示默认构造函数HAS最后发生.如果没有,displayWindow不会考虑任何更新的变量.
像这样:
Foo(int bar, int baz) :
Foo(initializeAnotherStaticLibrary(bar, baz) == -1 ? bar : baz)
{
}
Run Code Online (Sandbox Code Playgroud)
(请注意,委托构造函数是仅在C++ 11中支持的功能.)