C語言實現繼承和多型

2021-08-07 01:59:20 字數 1061 閱讀 6993

一、面向過程程式設計與物件導向程式設計的區別

眾所周知,c語言是一種典型的面向過程程式語言,而c++確實在它的基礎上改進的一款物件導向程式設計語言,那麼,面向過程與物件導向到底有什麼樣的區別呢?

【從設計方法角度看】

面向過程程式設計方法採用函式(或過程)來描述對資料的操作,但又將函式與其操作的資料分離開來。

物件導向程式設計方法是將資料和物件的操作封裝在一起,作為乙個整體來處理。

【從維護角度看】

面向過程程式設計以過程為中心,難於維護。

物件導向程式設計以資料為中心,資料相對功能而言,有較強的穩定性,因此更易於維護。

二、繼承與多型的概念

繼承:是物件導向最顯著的乙個特性。繼承是從已有的類中派生出新的類,新的類能吸收已有類的資料屬性

和行為,並能擴充套件新的能力,已有類被稱為父類/基類,新增加的類被稱作子類/派生類。

多型:按字面的意思就是「多種狀態」。在物件導向語言中,介面的多種不同現方式即為多型。同一操作作

用於不同的物件,可以有不同的解釋,產生不同的執行結果,這就是多型性。簡單說就是允許基類的

指標指向子類的物件。

三、**實現c語言模擬繼承與多型

#pragma once

#include

using

namespace

std;

//c++中的繼承與多型

struct a

;struct b:public a //c++中的繼承:b類公有繼承a類

;//c語言模擬c++的繼承與多型

typedef

void (*fun)(); //定義乙個函式指標來實現對成員函式的繼承

struct _a //父類

;struct _b //子類

;void _fa() //父類的同名函式

void _fb() //子類的同名函式

void test()

C語言實現繼承與多型

在前面部落格已經詳細講過c 中繼承與多型的概念,在這裡則只使用c語言的語法來實現繼承與多型。繼承 即派生類中擁有基類的成員變數和成員函式,所以c語言實現如下 include typedef void func void void funb typedef struct b b typedef str...

C語言實現封裝 繼承 多型

c語言中雖然沒有類,但有struct和指標。我們可以在乙個struct中存入資料和函式指標,以此來模擬類行為。typedef struct parent parent typedef struct child child include include 模擬乙個類a typedef struct a...

C語言 用C語言實現C 繼承與多型

繼承就是當建立乙個類時,不需要重新編寫新的資料成員和成員函式,只需指定新建的類繼承了乙個已有的類的成員即可。這個已有的類稱為基類,新建的類稱為派生類。舉個例子 人是動物,人具有動物的行為和屬性,但人也有動物所不具備的行為和屬性。動物行為 屬性會動體力人 行為屬性 會動體力 會學習智力 本實現使用了組...