C++ 重写与重载
来源:互联网 发布:淘宝运营新手好学吗 编辑:程序博客网 时间:2024/05/22 16:48
函数重载
必须在同一个类中进行
子类无法重载父类的函数,父类同名函数将被名称覆盖
重载是在编译期间根据参数类型和个数决定函数调用函数重写
必须发生于父类与子类之间
并且父类与子类中的函数必须有完全相同的原型
使用virtual声明之后能够产生多态(如果不使用virtual,那叫重定义)
#include <cstdlib>#include <iostream>using namespace std;class Parent01{public: Parent01() { cout<<"Parent01:printf()..do"<<endl; }public: virtual void func() { cout<<"Parent01:void func()"<<endl; } virtual void func(int i) { cout<<"Parent:void func(int i)"<<endl; } virtual void func(int i, int j) { cout<<"Parent:void func(int i, int j)"<<endl; }};class Child01 : public Parent01{public: //此处2个参数,和子类func函数是什么关系 void func(int i, int j) { cout<<"Child:void func(int i, int j)"<<" "<<i + j<<endl; } //此处3个参数的,和子类func函数是什么关系 void func(int i, int j, int k) { cout<<"Child:void func(int i, int j, int k)"<<" "<<i + j + k<<endl; }};void run01(Parent01* p){ p->func(1, 2);}int main(){ Parent01 p; p.func(); p.func(1); p.func(1, 2); Child01 c; //c.func(); //问题1 c.Parent01::func(); c.func(1, 2); run01(&p); run01(&c); system("pause"); return 0;}
阅读全文
0 0
- 【c#】重写和重载
- Java重写与重载
- 重载与重写
- 重写与重载 多态
- Java重写与重载
- 重载与重写
- 重载与重写Delphi
- Java重写与重载
- 重写与重载总结
- java重载与重写
- 重载与重写
- 重载与重写区别
- 重写与重载
- 重写与重载
- 重载与重写
- 浅谈重载与重写
- 重载 与 重写
- 重载与重写Delphi
- 通过AntDesign切入对MVVM的理解
- 微信打飞机 音乐版
- 【Python自学】08. 函数基础(上)
- 正则表达式
- 第二次练习作业2
- C++ 重写与重载
- 尝试mac下绑定 android sdk. mac 建文件 touch local.properties
- SaltStack源码剖析
- Python爬虫总结
- [ES6] Module export(转)
- ValueAnimator和TypeEvaluator 的使用
- Java基础——synchronized
- 微擎解决分页问题
- iptables