/******************************************************************************
* create : (jacc.kim) [4-29-2015]
* summary : class Base
******************************************************************************/
class Base
{
private:
int x;
public:
virtual void mf1() = 0;
virtual void mf1(int);
virtual void mf2();
void mf3();
void mf3(double);
};//class Base
/******************************************************************************
* create : (jacc.kim) [4-29-2015]
* summary : class Derive
******************************************************************************/
class Derive : public Base
{
public:
using Base::mf1; // 语句001
using Base::mf3; // 语句002
virtual void mf1();
void mf3();
void mf4();
};//class Derive
//
// summary : c++名称覆盖问题
// in param :
// out param :
// return :
// !!!note :
void testFunc() {
Derive d;
int x;
// ...
d.mf1(); // Ok.
d.mf1(x); // 仅当有写上 语句001 时,才Ok.否则编译错误。
d.mf2(); // Ok.
d.mf3(); // Ok.
d.mf3(x); // 仅当有写上 语句002 时,才Ok.否则编译错误。
}
摘抄起来备忘。
这个主要涉及名称作用域以及覆盖问题。