先宣告再定義的必要性

2021-05-06 17:42:18 字數 570 閱讀 3470

類a定義  在a.h中  實現在a.cpp

類b定義  在b.h中  實現在b.cpp

在類a中需要引用類b的型別

而類b也需要引用類a的型別

這樣 如果在類a.h加如#include"b.h"

在類b.h加入#include"a.h"

會出現什麼結果呢?

這樣 a,b會處在一種無限巢狀的死局之中。

編譯器,會報告 類未定義等錯誤。

解決的辦法:

在類a中不加入 #include'b.h'

而是在a中宣告下類b  即:class b;  這樣類a就可以先使用類b型別了

只在類b中加入#include"a.h"

舉例如下:

a.hclass b;

class a

public:

void cal(b b);  //   a的成員函式 使用b型別資料作為其引數

b.h#include"a.h"

class b

public:

a a;    //  a型別資料a     作為b類的成員函式

這樣就不會出錯了:>

this的必要性

先看下面一段 lesson8 necessary of this class person show name public void showinfo class demo 8 1 this屬於乙個物件,代表的是物件,其實就是乙個物件的引用,只能在類定義的方法中使用。那麼它代表那個物件呢?答 哪個...

it 的必要性

for std vector iterator itlocal m vecsoftwareer.begin itlocal m vecsoftwareer.end else it 如上所示,c 98中map erase並沒有返回值為iterator的原型函式。那麼問題來了it map.erase i...

sh c的必要性

在linux使用 echo 並配合命令重定向是實現向檔案中寫入資訊的快捷方式。比如要向 test.asc 檔案中隨便寫入點內容,可以 echo 資訊 test.asc 或者 echo 資訊 test.asc 下面,如果將 test.asc 許可權設定為只有 root 使用者才有許可權進行寫操作 su...