2009-07-15 19 views
0

我有一個一直存在的二元。它有一個C類,它也一直存在。我們必須引入新的方法M向C類,但我們只希望一些用戶意識到這種方法存在的M.去除.h文件編譯方法及其後果

通過從.h文件這樣的方法,這問題我們可以引入刪除?這種方法是否會向後兼容?

編輯:實際上,我們不關心,如果有找對方法的一種方式。我們只是想確保只有人知道他們在做什麼,使用它。

回答

6

一個更安全的方法是簡單地做一個派生類,給一個人的.H只是某些人。

7

對於大多數C++編譯器:如果方法是虛擬的,你會在嚴重的麻煩(虛函數表將全亂了);如果方法不是虛擬的,你不應該這樣做(但是一些聰明的用戶會通過「隱藏的安全性」來推斷你想要隱藏的東西的存在,並找到方法來使用你寧願隱藏的方法 - - 但那是另一回事;-)。

+1

請注意,無法保證班級仍能正常工作。但是,一般來說,只要函數是非虛擬的,你可能會逃避它。 – jalf 2009-07-15 04:52:12