我有一個類之前使用它,它的目的將通過另一個類可以用作以下崩潰,施工
class A
{
public:
void F() {...}
};
class B
{
public:
void G() { m_a->F(); ...} // use A's function
private:
A* m_a;
};
因此這是錯誤的調用B :: G()指針M_A的分配之前。這是可接受的設計?或者有更好的方法來做到這一點。
問題來自開發一個GUI應用程序。我在主窗口下面有一個窗口,顯示當前操作的一些基本信息,例如發生了什麼,需要多長時間等等。我把這個窗口作爲一個單獨的元素,以便可以隨處散佈的操作輕鬆訪問,並在關閉GUI應用程序時發現代碼崩潰。崩潰是由於窗口在刪除GUI應用程序(如qt中的qApp)後被刪除。然後,我只是把一個窗口的引用指針放在單例中。當窗口被構建時,我設置了引用指針。窗口的刪除由主窗口控制。從而解決了上述崩潰問題。但是如果其他開發人員在構建窗口之前使用單例,代碼也會崩潰。有什麼好辦法解決它?或者我們可以接受它,因爲在構建之前使用它是開發人員的錯誤?非常感謝!
這取決於您在文檔中編寫的內容! –
它怎麼可能是一個可接受的設計?調用'G()'是未定義的行爲。也許我沒有得到它 –