簡體   English   中英

3個.h和3個.cpp文件

[英]3 .h and 3 .cpp files

我正在構建應使用2.h中的1.h中的一個類的應用程序,其定義如下:

<classname> *p;

現在我可以在2.cpp中使用p了。 但我也想在3.cpp中使用它。 我無法在3.cpp中包括2.h。 有沒有辦法使它在3.cpp中可見?

謝謝您的幫助。

關於某些代碼問題的更具描述性的示例將很有價值。

通常,嘗試執行以下操作:

  • 每個標頭應僅包含其自己的具有相同名稱的類。
  • 如果一個類正在使用另一個類,並且您可以在該標頭中向前聲明它,請執行。

您不能向前聲明該類是否具有另一個類的實例,或者它是否派生自該類。

  • 編譯單元(cpp)文件應包含所需的所有標頭。 理想情況下,首先應包含其自己的標題。

您需要提供更多信息,但我想我明白了。您嘗試在已定義的標頭中使用一個類。另一個標頭,但由於某種原因,您無法將其定義的標頭包含在正在使用的標頭中。 解決方案是創建“臨時”定義而不是包含。

例如:您需要在1.h中使用myClassA,但是它是在2.h中定義的,並且有些錯誤不允許您將2.h包含到1.h中來解決它。

類myClassA;

在1.h之上,因此您可以引用它,但是沒有實現(因為它是在2.cpp中實現的)

一個簡單的規則是一類,一個頭文件。

鑒於:

A.h:
class A
{
};

B.h:
#include "A.h"
class B
{
  A obj;
};

C.h:
#include "A.h"
class C
{
  A obj;
};

我希望這能回答這個問題。 否則,請使用更多詳細信息和要完成的示例來編輯您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM