回答

4

相同的業務名稱隱藏它的全有或全無使用聲明(7.3.3)帶來,不是成員

ISO/IEC 14882(2003),7.3.3。1/A使用-聲明引入一個名稱在其中出現的using聲明聲明 區域,這名稱是名稱的同義詞 某個實體在其他地方宣佈的。

我鼓勵你閱讀7.3.3,裏面有微妙的東西。你可以不使用,申報模板,由名稱所指向的所有成員,你使用,申報必須是無障礙的,名字都considerd用於重載決議一起在using聲明中發現的塊的名稱(即不隱瞞任何事情),等等,等等

3

您可以訪問該父項中具有相同名稱的所有版本的方法/操作符。

2

兩者。你嘗試過嗎? (該死這個答案很短:不錯啊,我這裏是:。

#include <iostream> 
#include <string> 

struct bar 
{ 
    void foo() { std::cout << "non_c:foo()" << std::endl; } 
    void foo() const { std::cout << "c:foo()" << std::endl; } 
}; 

class base 
{ 
public: 
    bar* operator->() { return &b; } 
    bar const* operator->() const { return &b; } 

private: 
    bar b; 
}; 

class derived : public base 
{ 
public: 
    using base::operator->; 
}; 


int main(void) 
{ 
    const derived d = derived(); 
    derived e; 

    d->foo(); 
    e->foo(); 
} 
+3

我拒絕試圖用一個特定的編譯器可以學到一些東西的語言語義。 – fredoverflow

+0

@Fred,真的 - 但純粹的好奇心?否則爲什麼不簡單閱讀標準? – Nim

+2

@Nim:讀取整個標準,你想知道的東西,每次是有點不切實際,如記憶整個事情。 SO作品更好,因爲比實際的指數;-) –