《Effective C++》读书笔记(七)
《Effective C++》读书笔记(七)
《 Effective C++ 改善程序与设计的 55 个具体做法》继承与面向对象设计
using 声明式
假设基类的定义为
class Base
{
public:
void mf3();
void mf3(double);
// ...
}
然后有个派生类想继承函数 mf3 ,并且还想重载它
class Derived: public Base
{
public:
void mf3();
}
但是此时假如
Derived d;
d.mf3();
d.mf3(x); // 错误
会发现第二条语句错误,这是因为 Base::mf3 被 Derived::mf3 的作用域遮掩了
此时可以使用 using 声明式解决这个问题
class Derived: public Base
{
public:
using Base::mf3;
void mf3();
}
即可让 Base 类内名为 mf3 的所有东西在派生类的作用域内都可见
Subscribe to bbbiggest's blog
Get the latest posts delivered right to your inbox