次のコードでは:
#include <iostream>
class A
{
public:
void f( float x ) { std::cout << 1; }
void g() { std::cout << 11; }
};
class B : public A
{
public:
void f( char x ) { std::cout << 2; }
void g() { std::cout << 22; }
};
int main()
{
B b;
b.A::f( 0 );
b.A::g();
return 0;
}
この名前は隠れていませんか?そして、この構文は標準のどこで定義されていますか (C++11 または C++03 は関係ありません。両方の標準で同じようです)。
これが可能だとはまったく知りませんでした。そのような構文を見るのは初めてです(ここで初めて見ました:次のコードでクラス A 関数にアクセスできないのはなぜですか?)