程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> C++中類的多態與虛函數的使用

C++中類的多態與虛函數的使用

編輯:vc教程

類的多態特性是支持面向對象的語言最主要的特性,有過非面向對象語言開發經歷的人,通常對這一章節的內容會覺得不習慣,因為很多人錯誤的認為,支持類的封裝的語言就是支持面向對象的,其實不然,Visual BASIC 6.0 是典型的非面向對象的開發語言,但是它的確是支持類,支持類並不能說明就是支持面向對象,能夠解決多態問題的語言,才是真正支持面向對象的開發的語言,所以務必提醒有過其它非面向對象語言基礎的讀者注意!

多態的這個概念稍微有點模糊,如果想在一開始就想用清晰用語言描述它,讓讀者能夠明白,似乎不太現實,所以我們先看如下代碼:

//例程1

#include <iostream>
using namespace std;
class Vehicle
{
public:
Vehicle(float speed,int total)
{
Vehicle::speed=speed;
Vehicle::total=total;
}
void ShowMember()
{
cout<<speed<<"|"<<total<<endl;
}
protected:
float speed;
int total;
};
class Car:public Vehicle
{
public:
Car(int aird,float speed,int total):Vehicle(speed,total)
{
Car::aird=aird;
}
void ShowMember()
{
cout<<speed<<"|"<<total<<"|"<<aird<<endl;
}
protected:
int aird;
};
void main()
{
Vehicle a(120,4);
a.ShowMember();
Car b(180,110,4);
b.ShowMember();
cin.get();
}

在c++中是允許派生類重載基類成員函數的,對於類的重載來說,明確的,不同類的對象,調用其類的成員函數的時候,系統是知道如何找到其類的同名成員,上面代碼中的a.ShowMember();,即調用的是Vehicle::ShowMember(),b.ShowMember();,即調用的是Car::ShowMemeber();。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved