C語言中的面向對像

2021-06-10 21:30:52 字數 1872 閱讀 6251

//使用c語言實現c++物件導向的功能

[cpp]view plain

copy

print?

/*** 用 c 語言實現類的繼承,並且可用父類指標操作子類對像的乙個測試例子

* *  @author: tomken.zhang

*   

*/#include 

#include 

#include 

// 定義乙個動物類,有二個方法

struct

v_animal_ptr ;  

typedef

struct

v_animal_ptr animal_vptr;  

typedef

const

char

* (*get_name)();  

typedef

void

(*shout)(

intvolume);  

// 定義乙個動物類 

struct

animal ;  

static

const

char

* animal_get_name(

const

void

*class

)    

static

void

animal_shout(

const

void

*class

, int

volume)  

// 定義乙個豬類,有乙個高度值。

struct

pig ;  

static

const

char

* pig_get_name() ;  

static

void

pig_shout(

intvolume) ;  

// 定義豬的實現方法

static

animal_vptr pig_vptr =   

;  // 定義乙個狗類,有乙個顏色值。

struct

dog ;  

static

const

char

* dog_get_name() ;  

static

void

dog_shout(

intvolume) ;  

static

animal_vptr dog_vptr =   

;  static

struct

pig* init_pig()   

static

struct

dog* init_dog()   

intmain()    

執行結果:

[plain]view plain

copy

print?

$ ./test  

name=i am pig  

------------------------------------  

name=i am dog  

------------------------------------  

name=i am pig  

heng heng 20  

------------------------------------  

name=i am dog  

wang wang 100  

上面的例子有點長,可以仔細看看,如果不關心實現細節,可以看一下 main 函式

確實可以模擬 c++ 類繼承的方式進行操作了!

Scala語言的面向對像

把資料及對資料的操作方法放在一起,作為乙個相互依存的整體 物件 物件導向的三大特徵 簡單類和無參方法 class counter 無參方法 def current value 注意沒有class前面沒有public關鍵字修飾。代表學生資訊 快捷鍵 alt insert 可以看見 重寫函式 代表學生資...

面向對像的原則

你不必嚴格遵守這些原則,違背它們也不會被處以宗教刑罰。但你應當把這些原則看成警鈴,若違背了其中的一條,那麼警鈴就會響起。arthur j.riel 1 所有資料都應該隱藏在所在的類的內部。2 類的使用者必須依賴類的共有介面,但類不能依賴它的使用者。3 儘量減少類的協議中的訊息。4 實現所有類都理解的...

C語言中的物件導向 C語言中的類模擬

在物件導向的語言裡面,出現了類的概念。這是程式設計思想的一種進化。所謂類 是對特定資料的特定操作的集合體。所以說類包含了兩個範疇 資料和操作。而c語言中的struct僅僅是資料的集合。li 1978 163.com 1 例項 下面先從乙個小例子看起 ifndef c class define c c...