前言
在前面的教程中,闡述了繼承的相關內(nèi)容,其中就包括繼承之后數(shù)據(jù)成員的訪問控制以及多重繼承,虛擬繼承等內(nèi)容,本節(jié)的內(nèi)容即將闡述另外一個面向對象的特性:多態(tài),多態(tài)是面向對象編程三大特性之一。
定義
如何通俗的話來解釋多態(tài)呢?我們印出來這樣一個例子:首先,我們說:人類用手吃飯是本能,而英國人是用刀叉吃飯,中國人則是用筷子吃飯,那現(xiàn)在有一個問題了,當我們問這個人是怎么吃飯的,就不能簡單地回答說用筷子或者是用刀叉吃飯,應該根據(jù)其所在地國別不同而采用不同的吃飯方式,這就是多態(tài)。
代碼實現(xiàn)
上述用通俗的話解釋了一下,那么現(xiàn)在我們編寫具體的代碼來實現(xiàn)一下,上述中有人類,有英國人,有中國人,那么我們定義一個Human類,然后 EnglishMan和Chinese都繼承自Human,代碼如下所示:
class Human緊接著,我們編寫一下
{
public:
void eating(void) {cout << "use hand to eat" << endl;}
};
class EnglishMan : public Human
{
public:
void eating(void) {cout << "use knife to eat" << endl;}
};
class Chinese : public Human
{
public:
void eating(void) {cout << "use chopsticks to eat" << endl;}
};test代碼,代碼如下所示:
void test_eating(Human





