欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

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

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

【從維護(hù)角度看】

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

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

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

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

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

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

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

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

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

 int b;
};

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

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

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

 int _a;
};

struct _B   //子類
{
 _A _a_;  //在子類中定義一個(gè)基類的對象即可實(shí)現(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; //定義一個(gè)父類對象a
 B b; //定義一個(gè)子類對象b

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


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

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

運(yùn)行結(jié)果:

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

相關(guān)文章

  • C++中SetConsoleCursorPosition()移動(dòng)光標(biāo)函數(shù)的用法大全

    C++中SetConsoleCursorPosition()移動(dòng)光標(biāo)函數(shù)的用法大全

    這篇文章主要介紹了C++中SetConsoleCursorPosition()移動(dòng)光標(biāo)函數(shù)的用法大全,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • 詳解C語言中函數(shù)宏的三種封裝方式

    詳解C語言中函數(shù)宏的三種封裝方式

    函數(shù)宏,即包含多條語句的宏定義,其通常為某一被頻繁調(diào)用的功能的語句封裝,且不想通過函數(shù)方式封裝來降低額外的彈棧壓棧開銷。本文就來聊聊函數(shù)宏的三種封裝方式吧
    2023-03-03
  • C++自動(dòng)生成迷宮游戲

    C++自動(dòng)生成迷宮游戲

    這篇文章主要為大家詳細(xì)介紹了C++自動(dòng)生成迷宮游戲,運(yùn)用并查集自動(dòng)生成迷宮地圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • 簡述C++11就地初始化與列表初始化

    簡述C++11就地初始化與列表初始化

    這篇文章主要介紹了C++11就地初始化與列表初始化的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)C++,感興趣的朋友可以了解下
    2020-08-08
  • 一文帶你了解C++中的右值引用與移動(dòng)語義

    一文帶你了解C++中的右值引用與移動(dòng)語義

    本篇文章主要為大家詳細(xì)介紹了C++中的右值引用與移動(dòng)語義的相關(guān)知識,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2023-03-03
  • VC編程控件類HTControl之CHTGDIManager GDI資源管理類用法解析

    VC編程控件類HTControl之CHTGDIManager GDI資源管理類用法解析

    這篇文章主要介紹了VC編程控件類HTControl之CHTGDIManager GDI資源管理類用法解析,需要的朋友可以參考下
    2014-08-08
  • C語言深入刨析數(shù)據(jù)結(jié)構(gòu)之棧與鏈棧的設(shè)計(jì)與應(yīng)用

    C語言深入刨析數(shù)據(jù)結(jié)構(gòu)之棧與鏈棧的設(shè)計(jì)與應(yīng)用

    棧是限定僅在表尾進(jìn)行插入或刪除操作的線性表,表尾稱為棧頂(top),表頭稱為棧底(bottom)。棧的最主要特點(diǎn)就是“先進(jìn)后出”(FILO),或“后進(jìn)先出”(LIFO)。用鏈?zhǔn)酱鎯Y(jié)構(gòu)表示的棧稱為“鏈?!?,鏈棧對應(yīng)于鏈表
    2022-05-05
  • C語言實(shí)現(xiàn)猜數(shù)字的小游戲

    C語言實(shí)現(xiàn)猜數(shù)字的小游戲

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)猜數(shù)字的小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • C++野指針和懸空指針的實(shí)現(xiàn)方法

    C++野指針和懸空指針的實(shí)現(xiàn)方法

    野指針和懸空指針是指針中常見的兩個(gè)概念,本文詳細(xì)的介紹了這兩種的使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 嵌入式C程序優(yōu)質(zhì)編寫全面教程規(guī)范

    嵌入式C程序優(yōu)質(zhì)編寫全面教程規(guī)范

    這是一年前我為公司內(nèi)部寫的一個(gè)文檔,旨在向年輕的嵌入式軟件工程師們介紹如何在裸機(jī)環(huán)境下編寫優(yōu)質(zhì)嵌入式C程序。感覺是有一定的參考價(jià)值,所以拿出來分享,拋磚引玉
    2022-04-04

最新評論