#include
"pch.h"
#include
#include
#include
#include
using
namespace std;
namespace _nmsp1 //命名空間
virtual~a
()virtual
void
myvirfunc()
virtual
void
myvirfunc2()
};classb:
public a
virtual~b
()virtual
void
myvirfunc()
virtual
void
myvirfunc2()
};classc:
public b
virtual~c
()virtual
void
myvirfunc()
virtual
void
myvirfunc2()
int m_c;};
//---------------------
void
func()
}int
main()
c cobj;
c::c(
)//末端類
b::b(
) a::a(
)//根源類
vptr = a::vftable;
//編譯器插入的** 34 9b 2f 01
cout <<
"a::a()"
<< endl;
//我們自己的**
vptr = b::vftable;
//編譯器插入的** 54 9b 2f 01
cout <<
"b::b()"
<< endl;
//我們自己的**
vptr = c::vftable;
//編譯器插入的** 3c 9b 2f 01
//....不要在這裡動虛函式表指標
//memset(this,0,sizeof(c));
m_c =11;
//初始化列表中基本型別變數m_c的賦值時機
cout <<
"c::c()"
<< endl;
//我們自己的**
java 繼承體系物件的構造過程
先說一下普通物件的構造過程 比如下面 public class hello 1 初始化objec的靜態變數,然後呼叫objec的靜態初始化塊 2 初始化hello的靜態變數,然後呼叫hello的靜態初始化塊 3 初始化object的例項變數,和例項 4 呼叫object的無參建構函式 5 初始化he...
不同繼承體系下帶虛函式的物件模型
單繼承 多繼承 class b1 virtual void fun2 public int b1 class b2 virtual void fun2 public int b2 class d public b1,public b2 virtual void fun3 public int d i...
集合繼承體系的物件導向思想
l 介面 用來明確所有集合中該具有的功能,相當於在定義集合功能標準 l 抽象類 把多個集合中功能實現方式相同的方法,抽取到抽象類實現,具體集合不再遍寫,繼承使用即可 具體類 繼承抽象類,實現介面,重寫所有抽象方法,達到具備指定功能的集合。每個具體集合類,根據自身的資料儲存結構方式,對介面中的功能方法...