重载-重写-重定义

     何为重载、何为重写,又何为重定义呢?下面我将从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;

        }

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(C++)