2013-05-07 175 views
2

我想通過繼承來擴展Linux共享對象中類的C++ namespace。會出現什麼問題,尤其是涉及靜態對象和成員數據的問題?從共享對象中的類繼承

​​

平臺:GCC 4.5 RHEL 5

+0

對所有編輯感到抱歉。我只是將base子句添加到'Cbar'中 – ThomasMcLeod 2013-05-07 16:19:42

回答

2

(類)全局靜態變量的初始化的不同轉換單元的順序是undefined。但是,如果將類靜態變量Pi包裝到成員函數中,則將其替換爲本地靜態對象。有效的C++項目4:「通過用本地靜態對象替換非本地靜態對象,避免跨翻譯單元發生初始化順序問題」。如果對象保持全局靜態,則可能會在其他代碼使用它之前保持未初始化狀態。

protected: 
    static double PI() 
    { 
     static double PI = 3.141; 
     return PI; 
    }