中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

C語言模擬實現(xiàn)C++的繼承與多態(tài)示例-創(chuàng)新互聯(lián)

一、面向過程編程與面向?qū)ο缶幊痰膮^(qū)別

創(chuàng)新互聯(lián)建站是一家專業(yè)提供石門企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站制作、網(wǎng)站設(shè)計、html5、小程序制作等業(yè)務(wù)。10年已為石門眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進行中。

眾所周知,C語言是一種典型的面向過程編程語言,而C++確實在它的基礎(chǔ)上改進的一款面向?qū)ο缶幊陶Z言,那么,面向過程與面向?qū)ο蟮降子惺裁礃拥膮^(qū)別呢?

【從設(shè)計方法角度看】

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

面向?qū)ο蟪绦蛟O(shè)計方法是將數(shù)據(jù)和對象的操作封裝在一起,作為一個整體來處理。

【從維護角度看】

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

面向?qū)ο蟪绦蛟O(shè)計以數(shù)據(jù)為中心,數(shù)據(jù)相對功能而言,有較強的穩(wěn)定性,因此更易于維護。

二、繼承與多態(tài)的概念

繼承:是面向?qū)ο笞铒@著的一個特性。繼承是從已有的類中派生出新的類,新的類能吸收已有類的數(shù)據(jù)屬性 和行為,并能擴展新的能力,已有類被稱為父類/基類,新增加的類被稱作子類/派生類。

多態(tài):按字面的意思就是“多種狀態(tài)”。在面向?qū)ο笳Z言中,接口的多種不同現(xiàn)方式即為多態(tài)。同一操作作 用于不同的對象,可以有不同的解釋,產(chǎn)生不同的執(zhí)行結(jié)果,這就是多態(tài)性。簡單說就是允許基類的 指針指向子類的對象。

三、代碼實現(xiàn)C語言模擬繼承與多態(tài)

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

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

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

 int b;
};

//C語言模擬C++的繼承與多態(tài)

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

struct _A  //父類
{
 FUN _fun; //由于C語言中結(jié)構(gòu)體不能包含函數(shù),故只能用函數(shù)指針在外面實現(xiàn)

 int _a;
};

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

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


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

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


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

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

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

分享標(biāo)題:C語言模擬實現(xiàn)C++的繼承與多態(tài)示例-創(chuàng)新互聯(lián)
瀏覽地址:http://www.rwnh.cn/article16/ccicgg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、搜索引擎優(yōu)化、Google、網(wǎng)站建設(shè)網(wǎng)站收錄、全網(wǎng)營銷推廣

廣告

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

成都app開發(fā)公司
永新县| 新源县| 新蔡县| 札达县| 都匀市| 刚察县| 临邑县| 曲阳县| 北票市| 秦安县| 桐庐县| 四川省| 孙吴县| 壶关县| 朝阳县| 桂东县| 肃北| 淅川县| 芦山县| 墨脱县| 黄大仙区| 大城县| 阿勒泰市| 齐河县| 南靖县| 木兰县| 上虞市| 普陀区| 谷城县| 兴和县| 车险| 永寿县| 丰宁| 崇义县| 延安市| 沽源县| 桂东县| 金坛市| 金门县| 额敏县| 新昌县|