我有一个类,它的对象将被另一个类使用,如下所示
class A
{
public:
void F() {...}
};
class B
{
public:
void G() { m_a->F(); ...} // use A's function
private:
A* m_a;
};
因此在分配指针 m_a 之前调用 B::G() 是错误的。这是可接受的设计吗?或者有更好的方法来做到这一点。
问题来自开发 GUI 应用程序。我在主窗口下面有一个窗口,用来显示当前操作的一些基本信息,比如发生了什么,需要多长时间等等。我把这个窗口作为一个单独的窗口,以便通过可能分散在任何地方的操作轻松访问,并在关闭 GUI 应用程序时发现代码崩溃。崩溃是由于删除GUI应用程序(如Qt中的qApp)后删除了窗口。然后我只是将窗口的引用指针放在单例中。并且在构建窗口时,我设置了引用指针。窗口的删除由主窗口控制。这样就解决了上面提到的崩溃问题。但是如果其他开发人员在窗口构建之前使用单例,代码也会崩溃。有什么好办法解决吗?或者我们可以接受它,因为在构建之前使用它是开发人员的错误?非常感谢!