重载-重写-重定义

     何为重载、何为重写,又何为重定义呢?下面我将从C++实现的角度进行详细剖析,以及C++语言底层是如何实现重载、重写和重定义的。

 

一、重载

 

 

重载---同一个类中函数名相同,函数的参数列表不相同的两个及两个以上的函数就是函数重载。注意:函数的返回值不能作为函数是否重载的依据。如:类example中,函数a就是重载。

 

class example

 

 

{

 

public:

 

 

         int a(int parameter1);

 

         int a(int parameter1, char parameter2);

         int a(double parameter1, char parameter2);

}

 

二、重写

 

重写---是在子类继承父类的时候,对父类的虚函数进行了覆盖。重写会使程序发生动态联编,产生多态。

 

 

如childern类的A函数相对于parent类的虚函数A就是重写。

 

class parent

{

public:

 

         virtual int A(int parameter1)

 

         {

 

             cout << "I am parent" << endls;

         }

 

}

 

 

 

class childern : public parent

 

{

 

 

        int A(int paramenter)

 

 

        {

             cout << "I am childern" << endls;

        }

 

}

 

 

 

、重定义

 

重定义---是在子类继承父类的时候,对父类的非虚函数进行了覆盖。。

如childern类的A函数相对于parent类的非虚函数A就是重定义。

 

class parent

{

public:

         int A(int parameter1)

         {

             cout << "I am parent" << endls;

         }

}

 

class childern : public parent

{

        int A(int paramenter)

        {

             cout << "I am childern" << endls;

        }

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值