虚函数、继承需要注意的几点
2017-04-25 09:30
162 查看
#include <iostream>using namespace std;
class a{public : virtual void show() { cout<<"我是A类"; }
};class b:public a{public : void show() { cout<<"我是B类"; }
};int main(int argc,char* argv[]){
a* first=new b();first->show();delete first;return 0;
}//结果://当创建 a类型指针指向 新的a 或b对象,结局都为调用a对象(a类型或者说基类型指针可以指向自己也可以指向派生类,都调用了A类,也就是基类)//可以通过::所属关系来调用父类的被重载的函数例如 a* first=new b();first->a::show();//此时就会指向A类的方法,假若A中的SHOW方法是虚函数//当将父类中的需要被重载的函数前加virtual将其变成虚函数,则当a* first=new b();//first->show(); 指针指向派生类的时候调用的就会是B类,也就是派生类而不是基类.
class a{public : virtual void show() { cout<<"我是A类"; }
};class b:public a{public : void show() { cout<<"我是B类"; }
};int main(int argc,char* argv[]){
a* first=new b();first->show();delete first;return 0;
}//结果://当创建 a类型指针指向 新的a 或b对象,结局都为调用a对象(a类型或者说基类型指针可以指向自己也可以指向派生类,都调用了A类,也就是基类)//可以通过::所属关系来调用父类的被重载的函数例如 a* first=new b();first->a::show();//此时就会指向A类的方法,假若A中的SHOW方法是虚函数//当将父类中的需要被重载的函数前加virtual将其变成虚函数,则当a* first=new b();//first->show(); 指针指向派生类的时候调用的就会是B类,也就是派生类而不是基类.
相关文章推荐
- 使用NOSQL的MongoDB建立索引时需要注意的几点建议和Explain优化分析
- java中锁与同步需要注意的几点
- java重写equals方法需要注意的几点
- 研究生开题报告需要注意的几点
- 宏碁电脑双硬盘安装系统需要注意的几点问题
- ASP.NET网站开发需要注意的几点知识(实用,不间断更新)
- sql2005创建存储过程(需要注意的几点)
- Ubuntu Linux下Java Web应用程序需要注意的几点问题
- 使用NOSQL的MongoDB时建立索引需要注意的几点建议和Explain优化分析
- foreach语句使用需要注意的几点
- 阿里数字证书 tomcat 配置ssl能在微信小程序上使用时 需要注意的几点
- MYSQL建立索引需要注意几点
- 在项目开始前需要注意的几点
- java重写equals方法需要注意的几点
- get与post需要注意的几点
- C++类的静态成员【需要注意的几点】
- mybatis练习过程中发现需要注意的几点
- pcb电路板中同时存在高压和低压时布线需要注意的几点
- pcb电路板中同时存在高压和低压时布线需要注意的几点