类得相互引用

大鸟的小天空 2006-04-03 05:21:14
class aa
{
public:
bb * b;
}

class bb
{
public:
aa * a;
}
这样得代码不能编译通过
g++ -c aa.cpp
为什么?
该怎么作。
...全文
83 点赞 收藏 8
写回复
8 条回复
OOPhaisky 2006年04月03日
不能编译通过的原因:编译器是顺序扫描每个原文件的,而且每次只能处理一个原文件,而当编译器看到class aa中声明的“bb * b”时,它并不知道bb是什么东西(因为bb此时还没有出现),所以编译出错。
所以,需要加一个“前向声明”。
回复 点赞
OOPhaisky 2006年04月03日
同意jiajun2001(嘉俊) 的做法。
回复 点赞
wk19830318 2006年04月03日
增加bb的说明
回复 点赞
postren 2006年04月03日
类定义后别忘了分号
class bb;
class aa
{
public:
bb * b;
};

class bb
{
public:
aa * a;
};
回复 点赞
postren 2006年04月03日
类定义后别忘了分号
class bb;
class aa
{
public:
bb * b;
};

class bb
{
public:
aa * a;
};
回复 点赞
Jagen在路上 2006年04月03日
class bb;
class aa
{
public:
bb * b;
}

class bb
{
public:
aa * a;
}
回复 点赞
adintr 2006年04月03日
http://community.csdn.net/Expert/topic/4627/4627316.xml?temp=.2166559
回复 点赞
postren 2006年04月03日
在class aa
增加bb的说明

回复 点赞
发动态
发帖子
C++ 语言
创建于2007-09-28

3.1w+

社区成员

24.8w+

社区内容

C++ 语言相关问题讨论,技术干货分享
社区公告
暂无公告