最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言模擬實現(xiàn)C++的繼承與多態(tài)示例

 更新時間:2017年05月18日 14:52:27   作者:snow_5288  
本篇文章主要介紹了C語言模擬實現(xiàn)C++的繼承與多態(tài)示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

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

眾所周知,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ù)
}

運行結(jié)果:

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 一文搞懂c++中的std::move函數(shù)

    一文搞懂c++中的std::move函數(shù)

    這篇文章主要介紹了c++中的std::move函數(shù),在探討c++11中的Move函數(shù)前,先介紹兩個概念(左值和右值),對c++?std::move函數(shù)相關(guān)知識感興趣的朋友一起看看吧
    2022-07-07
  • C++基于reactor的服務(wù)器百萬并發(fā)實現(xiàn)與講解

    C++基于reactor的服務(wù)器百萬并發(fā)實現(xiàn)與講解

    這篇文章主要介紹了C++基于reactor的服務(wù)器百萬并發(fā)實現(xiàn)與講解,本文通過實例圖文相結(jié)合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • C++常用函數(shù)總結(jié)(algorithm 頭文件)

    C++常用函數(shù)總結(jié)(algorithm 頭文件)

    本文給大家詳細介紹了algorithm 頭文件中最常用的函數(shù)及其使用方法,當然這只是其中的一部分,algorithm 頭文件中還有很多其他的函數(shù),感興趣的朋友一起看看吧
    2023-12-12
  • C++實現(xiàn)十六進制字符串轉(zhuǎn)換成int整形值的示例

    C++實現(xiàn)十六進制字符串轉(zhuǎn)換成int整形值的示例

    今天小編就為大家分享一篇關(guān)于C++實現(xiàn)十六進制字符串轉(zhuǎn)換成int整形值的示例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • 基于C語言打造高效便捷的通訊錄管理系統(tǒng)

    基于C語言打造高效便捷的通訊錄管理系統(tǒng)

    這篇文章主要為大家詳細介紹了如何基于C語言打造高效便捷的通訊錄管理系統(tǒng),文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-02-02
  • C語言小知識之為什么要使用指針詳析

    C語言小知識之為什么要使用指針詳析

    指針是C語言中一個非常重要的概念,也是C語言的特色之一,使用指針可以對復雜數(shù)據(jù)進行處理,能對計算機的內(nèi)存分配進行控制,在函數(shù)調(diào)用中使用指針還可以返回多個值,這篇文章主要給大家介紹了C語言小知識之為什么要使用指針的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • C語言 存儲類詳解及示例代碼

    C語言 存儲類詳解及示例代碼

    本篇文章主要介紹C語言 存儲類,這里幫大家整理了存儲類的基礎(chǔ)資料,并提供示例代碼和詳細介紹,有興趣的小伙伴可以參考下
    2016-08-08
  • C++變量,常量,數(shù)組和字符串詳解

    C++變量,常量,數(shù)組和字符串詳解

    這篇文章主要介紹了C++變量,常量,數(shù)組和字符串,是C++入門學習中的基礎(chǔ)知識,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-10-10
  • C++實現(xiàn)LeetCode(78.子集合)

    C++實現(xiàn)LeetCode(78.子集合)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(78.子集合),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C語言中的運算符優(yōu)先級和結(jié)合性一覽表

    C語言中的運算符優(yōu)先級和結(jié)合性一覽表

    這篇文章主要介紹了C語言中的運算符優(yōu)先級和結(jié)合性一覽表,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02

最新評論

巫山县| 庆阳市| 阿克陶县| 神池县| 定南县| 武鸣县| 榆树市| 德阳市| 白城市| 雅江县| 巴林右旗| 黎平县| 增城市| 江阴市| 布尔津县| 自治县| 泰州市| 南漳县| 若尔盖县| 威远县| 两当县| 沭阳县| 苍山县| 株洲市| 兴宁市| 盐津县| 郧西县| 临沭县| 绍兴县| 杨浦区| 和林格尔县| 漠河县| 高台县| 漾濞| 滦南县| 衡水市| 绍兴县| 广元市| 邳州市| 南木林县| 沙河市|