代码:

 #include <iostream>
#include <cstring> using namespace std; class Base{
public:
virtual void func1();
virtual void func2();
void func3();
void func4();
}; void Base::func1(){
cout<<"Base func1"<<endl;
} void Base::func2(){
cout<<"Base func2"<<endl;
} void Base::func3(){
cout<<"Base func3"<<endl;
} void Base::func4(){
cout<<"Base func4"<<endl;
} class Derived1:public Base{
public:
void func1();//virtual可以省略
//char func2(){};错误,虚函数返回类型需要一致
void func3();
char func4();
}; void Derived1::func1(){
cout<<"Derived1 func1"<<endl;
} void Derived1::func3(){
cout<<"Derived1 func3"<<endl;
} char Derived1::func4(){
cout<<"Derived1 func4 can change the return type"<<endl;
} class Derived2:public Base{
public:
void func1();
}; void Derived2::func1(){
cout<<"Derived2 func1"<<endl;
} int main(){ Base *B;
Derived1 De1;
B = &De1;
B->func1();
B->func3();
B->func4();
De1.func4(); Derived2 *pDe2;
pDe2 = (Derived2*)&De1;
pDe2->func1(); return ; }

输出:

Derived1 func1
Base func3
Base func4
Derived1 func4 can change the return type
Derived1 func1

总结:

1、虚函数必须在父类中必须实现,不实现可以用纯虚函数;

2、子类虚函数的返回类型必须与父类中的返回类型一致,普通函数则可以不同;

3、子类虚函数如果参数发生变化,则虚特性消失。

最新文章

  1. Python for Infomatics 第13章 网页服务四(译)
  2. SDL文字和图形
  3. Top 15 Java Utility Classes
  4. AspectJ基础学习之三HelloWorld(转载)
  5. python数据库(mysql)操作
  6. spring 最全MAVEN 依赖引入配置
  7. 关于ActionBar的向下兼容
  8. 优化Webpack打包速度
  9. libevent之eventop
  10. OPPO A3在哪里打开usb调试模式的详细教程
  11. C语言之路-2-判断
  12. 002_关于six版本过低报cannot import name urllib_parse的问题
  13. ModelViewSet 路由 / django logging配置 / django-debug-toolbar使用
  14. 剑指offer 第十一天
  15. C语言 sscanf用法详解
  16. XX-net
  17. 青客宝团队Consul内部分享ppt
  18. mybatis由浅入深day02_4多对多查询_多对多查询总结
  19. 在django项目中手动模拟实现settings的配置
  20. Rsa2验签报错【java.security.SignatureException: Signature length not correct】的解决办法

热门文章

  1. uva 759 - The Return of the Roman Empire
  2. 利用System.Net.Mail和多线程实现邮件发送
  3. [Mugeda HTML5技术教程之8]添加行为
  4. JQuery实现隔行变色和突出显示当前行 效果
  5. Delphi中多线程下使用使用 UniDAC+MSSQL 需要注意的问题(连接前调用CoInitialize)
  6. ASP.NET WEB API 如何使用基于Post的方式传递多个值(二)
  7. iotop使用
  8. 【转】将Vim改造为强大的IDE—Vim集成Ctags/Taglist/Cscope/Winmanager/NERDTree/OmniCppComplete(有图有真相)
  9. Python partial函数
  10. puppet cert maintain