C 覆蓋方法 過載方法的理解

2021-09-10 13:08:21 字數 1761 閱讀 3013

覆蓋

如何覆蓋?覆蓋就是將基類的方法,在子類重新宣告一次,然後再改寫一下它的實現**。

過載

過載,是同一類中,方法名相同,引數列表不同的一組方法的定義。

**一

這個程式中過載的方法不能在子類中呼叫,是因為同名的方法countsomething在過載後,又被覆蓋。

經過修改,**二(下乙個**塊)同時實現了過載和覆蓋。實現方式:對乙個方法eat進行過載,對另乙個方法countsomething進行覆蓋。

#include

#include

//animal基類

class animal

;//子類

class fish :public animal

;//animal基類構造器

animal:

:animal

(std:

:string name)

//fish子類構造器

fish:

:fish

(std:

:string name)

:animal

(name)

//使用的其實是基類的構造器

//基類方法

void animal:

:eat()

void animal:

:countsomething

(int count_fish)

void animal:

:countsomething()

//方法的過載

//子類方法

void fish:

:fishspeak()

void fish:

:countsomething

(int count_fish)

//覆蓋方法

intmain()

**二

#include

#include

//animal基類

class animal

;//子類

class fish :public animal

;//animal基類構造器

animal:

:animal

(std:

:string name)

//fish子類構造器

fish:

:fish

(std:

:string name)

:animal

(name)

//使用的其實是基類的構造器

//基類方法

void animal:

:eat()

void animal:

:countsomething

(int count_fish)

void animal:

:eat

(int eatnum)

//方法的過載

//子類方法

void fish:

:fishspeak()

void fish:

:countsomething

(int count_fish)

//覆蓋方法

intmain()

C 覆蓋方法和過載方法

覆蓋方法 overriding 在 c 裡,當我們需要在基類裡提供乙個通用的函式,但是在它的某個子類裡,需要修改這個方法的實現,就要用到覆蓋。覆蓋是存在類中,子類覆蓋是從基類繼承過來的方法 函式 但是函式名 返回值 引數列表都必須和基類的方法相同。c 可以讓我們很容易實現這種既有共同特徵又需要在不同...

C 覆蓋方法與過載方法

什麼是類函式的覆蓋方法 覆蓋方法用於同一函式的重寫即派生類函式覆蓋基類同名函式 覆蓋方法重寫 覆蓋 了乙個方法,以實現不同的功能.一般是用於子類在繼承父類時,重寫 重新實現 父類中的方法 覆蓋方法的特徵 範圍不同 分別位於 基類 和 派生類中 函式名字相同 函式引數相同 基類函式必須有virtual...

細說C 覆蓋方法和過載方法

很多初學者朋友可能都傻傻分不清覆蓋方法和過載方法的區別是什麼,那麼小雨今天就以例項來給朋友們講解一下。首先說覆蓋方法,讓我們看下面的例子 class animal class pig animal class bird animal void animal move void pig move vo...