class Base
{
public:
virtual void func(){cout<<"Base"<<endl;}
};
class Derived: Base
{
private:
virtual void func(){cout<<"Derived"<<endl;}
};
int main()
{
Base *b = new Derived();
b->func();
}
实际调用为Derived::func();
请问这种以基类指针访问权限为准的设计有什么好处,是否破坏了派生类的访问机制?
http://bbs.csdn.net/topics/210042197
学习中想起来自己好像看过这些东西,所以回同学这些东西;
暂且不管其他啊。群里的那个例子让我想到有个应用方向。也就是,楼主所说的好处:假如Base下面的每个子类都是不同公司的业务实现。一般甲方公司的框架和框架下面的业务实现有时候会交给其他乙方公司来做,不同乙方公司会按照甲方的框架来具体实现,我们new了哪一个派生类就会去实例化哪一个乙方公司,这样的话以后就会很方便了。一旦有新的乙方公司来做业务实现的时候(框架一般是不会经常变动的),如果代码写的好的话,我们只需要去修改new后面的类名就可以了。想用哪个公司的就用那个公司的。
18:37:52
sunny 2014/8/5 18:37:52
楼主的代码明显是学习当中,遇到了非要纠结个半死才痛快。。。一般虚函数直接用来做接口~~哪有这样的。。。
嗯~忘过路大神多指教。。