C++中的虚函数
2024-10-18 18:24:01
代码:
#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、子类虚函数如果参数发生变化,则虚特性消失。
最新文章
- Python for Infomatics 第13章 网页服务四(译)
- SDL文字和图形
- Top 15 Java Utility Classes
- AspectJ基础学习之三HelloWorld(转载)
- python数据库(mysql)操作
- spring 最全MAVEN 依赖引入配置
- 关于ActionBar的向下兼容
- 优化Webpack打包速度
- libevent之eventop
- OPPO A3在哪里打开usb调试模式的详细教程
- C语言之路-2-判断
- 002_关于six版本过低报cannot import name urllib_parse的问题
- ModelViewSet 路由 / django logging配置 / django-debug-toolbar使用
- 剑指offer 第十一天
- C语言 sscanf用法详解
- XX-net
- 青客宝团队Consul内部分享ppt
- mybatis由浅入深day02_4多对多查询_多对多查询总结
- 在django项目中手动模拟实现settings的配置
- Rsa2验签报错【java.security.SignatureException: Signature length not correct】的解决办法
热门文章
- uva 759 - The Return of the Roman Empire
- 利用System.Net.Mail和多线程实现邮件发送
- [Mugeda HTML5技术教程之8]添加行为
- JQuery实现隔行变色和突出显示当前行 效果
- Delphi中多线程下使用使用 UniDAC+MSSQL 需要注意的问题(连接前调用CoInitialize)
- ASP.NET WEB API 如何使用基于Post的方式传递多个值(二)
- iotop使用
- 【转】将Vim改造为强大的IDE—Vim集成Ctags/Taglist/Cscope/Winmanager/NERDTree/OmniCppComplete(有图有真相)
- Python partial函数
- puppet cert maintain