鑑於我們已經在基類中重載了方法,並且繼承了私有/受保護的派生類。基類重載方法的訪問聲明
- 我們可以只重建一個/幾個重載方法的原始訪問級別嗎?
- 在GCC 4.4.0上,我嘗試將基礎方法置於受保護的訪問之下,然後使用私有訪問繼承它。當我嘗試恢復訪問級別的公共,它的作品!這是如何工作的?或者它是編譯器上的錯誤?據我的理解,恢復訪問級別不應該被用來提升或降低成員的訪問級別。
代碼片段:
class base {
public:
void method() {}
void method(int x) {}
protected:
void method2() {}
};
class derived : private base {
public:
base::method; // Here, i want to restore only the none parameterized method
base::method2; // method2 is now public??
};
BTW-是像'base :: method'這樣的聲明,完全等價於'using base :: method'? – Kos 2011-01-05 18:39:46
@Kos,是的,但在C++ 0x中不再有效地說'base :: method;'。它被n3225草稿刪除。 – 2011-01-05 20:48:08