Wil*_*mKF 8 c++ language-features using
在类定义中使用是什么意思?
class myClass {
public:
[...]
using anotherClass::method;
};
Run Code Online (Sandbox Code Playgroud)
asc*_*ler 18
该声明取消隐藏基类成员.这通常用于允许成员函数的重载.例:
class Base {
public:
void method() const;
};
class Derived : public Base {
public:
void method(int n) const;
// Without the using, you would get compile errors on d.method();
using Base::method;
};
Run Code Online (Sandbox Code Playgroud)
我见过的情况:
class A
{
void foo(int);
void foo(float);
}
class B : public A
{
void foo(string);
}
B b;
b.foo(12); // won't work!
Run Code Online (Sandbox Code Playgroud)
因为我在B中使用不同的签名实现了一个新的foo函数,所以它隐藏了来自A的foo函数.为了覆盖这种行为,我会这样做:
class B : public A
{
void foo(string);
using A::foo;
}
Run Code Online (Sandbox Code Playgroud)