//使用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...