【发布时间】:2013-04-30 08:41:37
【问题描述】:
在以下代码中:
#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,没关系,这两个标准似乎都是一样的)?
我完全不知道这是可能的,这是我第一次看到这样的语法(第一次在这里看到它:why cant i access class A function in following code?)
【问题讨论】:
-
13.2 Declaration matchingof n3337 为您提供了一个明确的例子。甚至 N3465 Current WD 也有它在 13.2
标签: c++ syntax name-hiding