#include
#include
using
namespace
std;
class a
};struct b
;int main()
類中的成員函式位於**段中
呼叫成員函式時物件位址(this)訪問成員變數
成員函式通過物件指標訪問成員變數
c++ 語法隱藏了物件位址的傳遞
繼承物件模型
多型物件模型#include
#include
using
namespace
std;
class demo
};class derived : public demo
void print()
};struct test
;int main()
==虛函式呼叫效率 < 普通成員函式==
c語言實現物件導向及多型
#ifndef _51_2_h_
#define _51_2_h_
typedef void demo;
typedef void derived;
demo* demo_create(int i, int j);
int demo_geti(demo* pthis);
int demo_getj(demo* pthis);
int demo_add(demo* pthis, int
value);
void demo_free(demo* pthis);
derived* derived_create(int i, int j, int k);
int derived_getk(derived* pthis);
int derived_add(derived* pthis, int
value);
#endif
#include "test.h"
#include "malloc.h"
#include "stdio.h"
static
int demo_virtual_add(demo* pthis, int
value);
static
int derived_virtual_add(demo* pthis, int
value);
struct vtable // 2. 定義虛函式表資料結構
;struct classdemo
;struct classderived
;static
struct vtable g_demo_vtbl =
;static
struct vtable g_derived_vtbl =
;demo* demo_create(int i, int j)
return ret;
}int demo_geti(demo* pthis)
int demo_getj(demo* pthis)
// 6. 定義虛函式表中指標所指向的具體函式
static
int demo_virtual_add(demo* pthis, int
value)
// 5. 分析具體的虛函式!!!!
int demo_add(demo* pthis, int
value)
void demo_free(demo* pthis)
derived* derived_create(int i, int j, int k)
return ret;
}int derived_getk(derived* pthis)
static
int derived_virtual_add(demo* pthis, int
value)
int derived_add(derived* pthis, int
value)
void run(demo* p, int v)
int main()
python 物件導向 繼承 多型
概念理解 類似於祖輩留下的遺產,父輩可以使用,父輩留下的東西,子輩可以使用,這就是繼承。例如 建立乙個動物類,貓也是乙個動物,所以貓也具有動物的屬性 class animal 定義乙個動物類 def eat self print 吃飯 def drink self print 喝水 貓也是乙個動物,...
python物件導向(繼承,多型)
多型鴨子型別 獲取物件資訊 type,isinstance,dir 定義class animal object 定義乙個名為animal的基類 defrun self print 動物可以跑 class dog animal 定義乙個名為dog的子類 pass class cat animal 定義...
物件導向 封裝 繼承 多型
物件導向 封裝 繼承 多型物件導向 封裝 一 封裝 private 資料型別 名字 成員變數 public 預設一致 名字 屬性 set 類中不僅可以有成員變數和屬性,還可以有成員方法 訪問修飾符 4個 public 公共的,任何地方都可以訪問,但是需要引用 命名空間 private 私有的,類的內...