C++学习笔记 重写重载和重定义

#include "iostream"
using namespace std;
//重写 重载 重定义
//函数重载
//1 必须在同一个类中进行
//2子类无法重载父类的函数 ,父类同名函数被覆盖
//3 重载是在编译期间根据参数类型和个数决定函数调用
//函数重写
//必须发生于父类与子类之间
//并且 父类与子类中的函数必须有完全相同的类型
//使用virtual声明之后能够产生多态(如果不使用virtual 叫重定义)
//多态是在运行期间根据具体对象的类型决定函数的调用
class Parent
{
public:
 virtual void func()
 {
  cout << "P_func () " << endl;
 }
 virtual void func(int i, int j)
 {
  cout << "P_func(a,b)" << endl;
 }
 
protected:
private:
};
class Child :public Parent
{
public:
 virtual void func(int i, int j)
 {
  cout << "C_func(a,b)" << endl;
 }
 virtual void func(int i, int j, int l)
 {
  cout << "C_func(i,j,l)" << endl;
 }
protected:
private:
};
void main()
{
 //Parent p1;
 Child c1;
 c1.Parent::func();
 //1 c++编译器 看到func的名字,因为子类中的func名字已经存在了
 //名称覆盖,所以c++编译器不会去找父类中的func函数
 //2 c++编译器只会在子类中查找func函数 ,找到了两个func
 //一个是两个参数的,一个是三个参数的
 //3 若想调用父类的func函数,只能加上域名Parent::
 
system("pause");
return ;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值