保持基类行为和派生类行为再非虚函数上保持一致。
class B{
public:
void mf();
};
class D:public B{...};
D x;
B *pb=&x;
pb->mf();
D* pd=&x;
pd->mf();
//如果你再D中重新定义了mf你会发现两个调用方式的行为不一致。这种行为是非常混乱的。要尽量避免.
保持基类行为和派生类行为再非虚函数上保持一致。
class B{
public:
void mf();
};
class D:public B{...};
D x;
B *pb=&x;
pb->mf();
D* pd=&x;
pd->mf();
//如果你再D中重新定义了mf你会发现两个调用方式的行为不一致。这种行为是非常混乱的。要尽量避免.