bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

C語言模擬實現C++的繼承與多態示例-創新互聯

一、面向過程編程與面向對象編程的區別

創新互聯建站是一家專業提供石門企業網站建設,專注與網站制作、網站設計、html5、小程序制作等業務。10年已為石門眾多企業、政府機構等服務。創新互聯專業網站建設公司優惠進行中。

眾所周知,C語言是一種典型的面向過程編程語言,而C++確實在它的基礎上改進的一款面向對象編程語言,那么,面向過程與面向對象到底有什么樣的區別呢?

【從設計方法角度看】

面向過程程序設計方法采用函數(或過程)來描述對數據的操作,但又將函數與其操作的數據分離開來。

面向對象程序設計方法是將數據和對象的操作封裝在一起,作為一個整體來處理。

【從維護角度看】

面向過程程序設計以過程為中心,難于維護。

面向對象程序設計以數據為中心,數據相對功能而言,有較強的穩定性,因此更易于維護。

二、繼承與多態的概念

繼承:是面向對象最顯著的一個特性。繼承是從已有的類中派生出新的類,新的類能吸收已有類的數據屬性 和行為,并能擴展新的能力,已有類被稱為父類/基類,新增加的類被稱作子類/派生類。

多態:按字面的意思就是“多種狀態”。在面向對象語言中,接口的多種不同現方式即為多態。同一操作作 用于不同的對象,可以有不同的解釋,產生不同的執行結果,這就是多態性。簡單說就是允許基類的 指針指向子類的對象。

三、代碼實現C語言模擬繼承與多態

#pragma once
#include <iostream>
using namespace std;

//C++中的繼承與多態
struct A
{
 virtual void fun() //C++中的多態:通過虛函數實現
 {
  cout<<"A:fun()"<<endl;
 }

 int a;
};
struct B:public A   //C++中的繼承:B類公有繼承A類
{
 virtual void fun() //C++中的多態:通過虛函數實現(子類的關鍵字virtual可加可不加)
 {
  cout<<"B:fun()"<<endl;
 }

 int b;
};

//C語言模擬C++的繼承與多態

typedef void (*FUN)();  //定義一個函數指針來實現對成員函數的繼承

struct _A  //父類
{
 FUN _fun; //由于C語言中結構體不能包含函數,故只能用函數指針在外面實現

 int _a;
};

struct _B   //子類
{
 _A _a_;  //在子類中定義一個基類的對象即可實現對父類的繼承
 int _b;
};

void _fA()  //父類的同名函數
{
 printf("_A:_fun()\n");
}
void _fB()  //子類的同名函數
{
 printf("_B:_fun()\n");
}


void Test()
{
 //測試C++中的繼承與多態
 A a; //定義一個父類對象a
 B b; //定義一個子類對象b

 A* p1 = &a; //定義一個父類指針指向父類的對象
 p1->fun(); //調用父類的同名函數
 p1 = &b;  //讓父類指針指向子類的對象
 p1->fun(); //調用子類的同名函數


 //C語言模擬繼承與多態的測試
 _A _a; //定義一個父類對象_a
 _B _b; //定義一個子類對象_b
 _a._fun = _fA;  //父類的對象調用父類的同名函數
 _b._a_._fun = _fB; //子類的對象調用子類的同名函數

 _A* p2 = &_a; //定義一個父類指針指向父類的對象
 p2->_fun();  //調用父類的同名函數
 p2 = (_A*)&_b; //讓父類指針指向子類的對象,由于類型不匹配所以要進行強轉
 p2->_fun();  //調用子類的同名函數
}

另外有需要云服務器可以了解下創新互聯建站vcdvsql.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

分享標題:C語言模擬實現C++的繼承與多態示例-創新互聯
瀏覽地址:http://vcdvsql.cn/article16/ccicgg.html

成都網站建設公司_創新互聯,為您提供軟件開發、搜索引擎優化、Google網站建設、網站收錄、全網營銷推廣

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都app開發公司