2014-11-08 45 views
0
  1. 我想解決一個測驗並且遇到了這個問題。
    請解釋一下內部發生,導致該輸出請在下面的代碼中說明執行的順序

    class B; 
    
    class A { 
        friend class B; 
    
        public: 
        ~A() { 
         B boj(); 
         cout << "object A destructor " << endl; 
        } 
    }; 
    
    class B { 
        public: 
        ~B() { cout << "object B destructor " << endl; } 
    }; 
    
    int main() { 
        A a; 
        A aobj(); 
        B bobj(); 
    } 
    

    輸出是:

    對象A

  2. 我想其中一個用戶進入創建一個程序的析構函數如果他希望添加另一條記錄,並且如果是,則爲該記錄創建一個新對象。

    因此,如果我包含構造函數,那麼每次用戶需要時如何創建一個新對象? (如果我給予對象數組預定義的大小,那麼將調用構造函數,例如50次並初始化所有50個對象,而用戶可能只想輸入更少)。

+1

每個問題的一個問題,請。你想讓我們回答哪一個? – 2014-11-08 21:39:20

+0

@TheParamagneticCroissant:是的,我已經在我的答案中說過了。 – 2014-11-08 21:42:04

+0

@LightnessRacesinOrbit不是針對你,而是針對OP。在撰寫答案時,我正在輸入我的評論。 – 2014-11-08 21:42:53

回答

0

首先,構建a。然後,a被銷燬。

最後兩個聲明中main了,裏面~B()的聲明,都是本土功能聲明,因此不「做」任何事情。