2017-04-24 54 views
-1

我有兩個類:刪除對象通過傳遞它的指針作爲參數

在我的.h文件:

class A 
{ 
    A(); 

private: 
vector<B*> list; 

void deleteObject(B* i); 

} 


class B 
{ 
    B(); 
} 

在我的.cpp文件:

void A::deleteObject(B* i) 
{ 
    delete i; 
} 

然而, Visual Studio強調deleteObject爲紅色並表示它與頭文件中的聲明不兼容

任何幫助wou LD理解

+1

*「但是,這是不正確的,我不知道爲什麼」* - 我們也不是,因爲你沒有告訴我們你想要完成所有這個 – StoryTeller

+0

我甚至沒有運行該程序,但我的Visual Studio用紅色加下劃線並告訴我該聲明與.h文件中的聲明不兼容 –

+1

可能是因爲當你定義'class A'時,它不知道什麼是在你的'vector '聲明中'B'。 – Rogus

回答

-1

你需要在類的結束(}後)

另外添加;,如果這兩個類都在同一個文件,你必須把B級以上的A類

class B 
{ 
    B(); 
}; 

class A 
{ 
    A();  
    private: 
     vector<B*> list;  
     void deleteObject(B* i);  
};  

您可以看到這個無錯代碼here