日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

C++中没有定义类的引用。

發(fā)布時(shí)間:2025/3/15 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++中没有定义类的引用。 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在有時(shí)候由于類太大。須要在類在后面定義;

比如:

? ??

class Y{void f(X); }; class X{ //一些成員數(shù)據(jù)和函數(shù)};//error由于c++要求不論什么一個(gè)變量在引用之前必須聲明。

。在上述定義中我們能夠調(diào)換兩者的順序來實(shí)現(xiàn)。

可是假設(shè)形成了循環(huán)?

class X{void f1(Y) }; class Y{void f(X); }; //error
這樣的就不能通過簡單的調(diào)換順序來通過編譯器在調(diào)用之前必須聲明的金科玉律了。

那么我們能夠通過在上述中先聲明?

class Y; class X{void f1(Y) //error }; class Y{void f(X); };
但是上述的代碼中函數(shù)f1(Y)的參數(shù)是變量Y而這時(shí)候必須知道整個(gè)類Y的詳細(xì)結(jié)構(gòu)的。

所以是不可行的。

所以我們通過將函數(shù)f1()中的參數(shù)Y改為

class Y; class X{void f1(Y*) }; class Y{void f(X); }; //right
將上述參數(shù)類Y改為其指針之后就可行的由于編譯器知道怎樣傳遞一個(gè)地址,這一地址是固定大小的。

而不必要知道傳遞的是什么對象,即使是我們?nèi)徊恢理氁獋鬟f的對象類型的大小。

可是這里函數(shù)f2()就能夠使用類X作為參數(shù) 。由于類X已經(jīng)被完整的定義了。








轉(zhuǎn)載于:https://www.cnblogs.com/yangykaifa/p/6795051.html

總結(jié)

以上是生活随笔為你收集整理的C++中没有定义类的引用。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。