c++ virtual 记录

虚继承:

http://zh.wikipedia.org/wiki/%E8%99%9A%E7%BB%A7%E6%89%BF

解决了菱形继承问题

cB cC 继承cA    cD继承cB,cC    cD会有两个cA    函数出现二义性。cB,cC虚继承cA后 cD的继承结构里只有一个cA.

虚函数 -->解决父类调子类方法问题 OR 覆盖父类函数。

多态还有个关键之处就是一切用指向基类的指针或引用来操作对象

http://zh.wikipedia.org/wiki/%E8%99%9A%E5%87%BD%E6%95%B0_%28%E7%A8%8B%E5%BA%8F%E8%AF%AD%E8%A8%80%29#C.2B.2B_2

class C{
public:
virtual void fun1(){
printf("C_fun1");
}
   virtual void fun2()=0;//纯虚函数 纯虚函数子类必需实现,类似于接口函数
} class C1:public C{ //这里要加public 不加的话访问父类的特性用不了
public:
void fun1(){
printf("C1_fun1");
}
virtual void fun2() override{
} } int main(){
C* c = new C1();
c->fun1();// C1_fun1
}

虚函数解决继承同样基类的不同子类的方法统一调用问题

上一篇:iOS重签名脚本


下一篇:ASP.NET MVC+Bootstrap个人博客之后台dataTable数据列表(五)