我想进入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