我怀疑它可以移植,但有没有解决方案?我认为可以通过创建备用堆栈并在功能输入上重置SP,BP和IP,并使产量保存IP并恢复SP + BP来完成.析构函数和异常安全看起来很棘手但可以解决.
它完成了吗?这不可能吗?
我有一个复杂的对话框,它充满了空白,我无法收缩它.在Designer中,它有许多组件,然后动态隐藏,还有一些动态添加.我添加了大小策略,大小提示和最小大小的转储,但仍然无法弄清楚为什么Qt不会让我拖得更小.
必须有一些工具或技术来解决这个问题.
请分享.
我正在为以下情况寻找一个干净的C++习语:
class SomeLibraryClass {
public:
SomeLibraryClass() { /* start initialization */ }
void addFoo() { /* we are a collection of foos */ }
void funcToCallAfterAllAddFoos() { /* Making sure this is called is the issue */ }
};
class SomeUserClass : public SomeLibraryClass {
public:
SomeUserClass() {
addFoo();
addFoo();
addFoo(); // SomeUserClass has three foos.
}
};
class SomeUserDerrivedClass : public SomeUserClass {
public:
SomeUserDerrivedClass() {
addFoo(); // This one has four foos.
}
};
Run Code Online (Sandbox Code Playgroud)
所以,我真正想要的是SomeLibraryClass在构造过程结束时强制执行funcToCallAfterAllAddFoos的调用.用户不能将它放在SomeUserClass :: SomeUserClass()的末尾,这会弄乱SomeUserDerrivedClass.如果他把它放在SomeUserDerrivedClass的末尾,那么它永远不会被SomeUserClass调用.
为了进一步说明我的需要,想象一下/*start …