在有時候由於類太大。須要在類在後面定義;
比如:
class y;
class x;
//error
由於c++要求不論什麼乙個變數在引用之前必須宣告。
。在上述定義中我們能夠調換兩者的順序來實現。
可是假設形成了迴圈?
class x;
class y;
//error
這樣的就不能通過簡單的調換順序來通過編譯器在呼叫之前必須宣告的金科玉律了。
那麼我們能夠通過在上述中先宣告?
class y;
class x;
class y;
但是上述的**中函式f1(y)的引數是變數y而這時候必須知道整個類y的詳細結構的。
所以是不可行的。
所以我們通過將函式f1()中的引數y改為
class y;
class x;
class y;
//right
將上述引數類y改為其指標之後就可行的由於編譯器知道怎樣傳遞乙個位址,這一位址是固定大小的。
而不必要知道傳遞的是什麼物件,即使是我們全然不知道須要傳遞的物件型別的大小。
可是這裡函式f2()就能夠使用類x作為引數 。由於類x已經被完整的定義了。
c中沒有傳引用,傳引用是c 的概念
c中只有傳值方式,傳位址 指標 實際上也可以理解為傳值 位址的拷貝 無傳引用 c 中有傳引用。可以理解為起別名,當然底層是指標實現的 好處是方便操作,無需解引用就可實現指標操作 下面有例子 以下cpp include void change int a int b using namespace s...
c 類和C 中定義類的定義
c 類和c 中定義類的定義 相同處 1.1.都需要使用 class標識 1.2.都包含有成員 函式,屬性 1.3.都有private public protect 標識的成員 2.不同之處 2.2.c 申明類及成員時格式 class member 一般在class的末尾處需要乙個英文分割符號 pub...
C語言沒有引用,C 才有引用
如果用函式傳遞引數,實現改變某個數的值。若用c語言,則傳遞乙個指標值 位址 在函式裡把指標所指向的內容重新賦值,指標值不會變。includeint change int i int main 若用c 語言,則可以用 引用引數 includeint change int i int main c語言使...