我想進入C++,我遇到了一些問題。我的兩個類看起來像:指針和循環依賴
#include "Account.h"
class Program
{
public:
Program(void);
~Program(void);
void SetAccount(Account account);
};
#include "Program.h"
class Account
{
public:
Program *program;
Account(void);
~Account(void);
};
通過傳遞Account類的實例來SetAccount功能我在做一個副本或者我將它作爲一個參考?據我所知,我正在製作它的副本,但我想確定。要將它作爲參考傳遞,我需要使用指針,對嗎?
我遇到的另一個問題是我的帳戶類。讓我們說它需要在某個時候有Program類的引用。問題在於Program和Account類都有「#include」行,所以會導致循環依賴。任何想法如何解決它?
編輯
我的班,現在看起來像這樣:
#include "Account.h"
class Program
{
public:
Program();
~Program();
void SetAccount(Account account);
};
class Program;
class Account
{
public:
Program *program;
Account();
~Account();
};
當我嘗試在帳戶構造函數初始化*程序我得到「不完全類型是不允許」和「‘程序’:沒有適當的默認構造函數可用「。
你是如何啓動它的?如果你做'program = NULL;'這將工作。如果您嘗試使用'new Program();'創建一個新對象,那麼您當然必須知道它的大小,這意味着您必須提供包含文件。您只能使用前向聲明來執行指針操作。 – Devolus
我剛纔問了同樣的事情,在另一個答案。很想得到它的答案。 – martynaspikunas
你得到了哪個錯誤,你現在的代碼是怎麼看的? – Devolus