由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 两个class的交叉引用问题
相关主题
另一个Fortran 问题Why should i include .cpp instead of .h
c++,这种做法不行?怎样include一个函数
最基本的C语言编程问题请教gcc 编译的时候要包括 header source file 吗?
弱问c++里有没有NULL这个keyword?is there any lib can read .Z file in c++/c program?
又一个初级问题: C++中多如牛毛的#define格式弱问一个ifdef 和ifndef
问个两个.h文件互相include的问题请教 C++ std::list iterator 对 template class pointer 的应用问题
C 里面有办法永久改变一个指针的属性吗?forward declaration
global variable usage question in C++弱问C++一个问题 一直不解
相关话题的讨论汇总
话题: class话题: 文件话题: ifndef话题: 头文件话题: endif
进入Programming版参与讨论
1 (共1页)
q***s
发帖数: 2243
1
在做一个程序,需要用到两个class的交叉引用,比如在A类中要用到B类的实例,同样在B
类中也需要用到A类的实例,我把两个类是放在两个文件中,分别为a.h, a.cpp, b.h, b.
cpp,但是,问题是我无论如何也不能让编译器认识这是两个类。
请教高手,如何放置头文件才可以实现编译通过。
我的文件大概如下:
文件a.h
#ifndef a_h
#define a_h
class A
{
vector mylist;
}
#endif
文件b.h
#ifndef b_h
#define b_h
class B
{
public:
void print(A aa);
}
#endif
a***o
发帖数: 969
2
where is your include

B
b.

【在 q***s 的大作中提到】
: 在做一个程序,需要用到两个class的交叉引用,比如在A类中要用到B类的实例,同样在B
: 类中也需要用到A类的实例,我把两个类是放在两个文件中,分别为a.h, a.cpp, b.h, b.
: cpp,但是,问题是我无论如何也不能让编译器认识这是两个类。
: 请教高手,如何放置头文件才可以实现编译通过。
: 我的文件大概如下:
: 文件a.h
: #ifndef a_h
: #define a_h
: class A
: {

q***s
发帖数: 2243
3
每个cpp文件include他自己的头文件
我在头文件中放进了要用的类的文件,如下
文件a.h
#ifndef a_h
#define a_h
#include "b.h" //好像不行
class A
{
vector mylist;
}
#endif
文件b.h
#ifndef b_h
#define b_h
#include "a.h" //好像这样不行的
class B
{
public:
void print(A aa);
}
#endif
a***o
发帖数: 969
4
class后面的分号呢

【在 q***s 的大作中提到】
: 每个cpp文件include他自己的头文件
: 我在头文件中放进了要用的类的文件,如下
: 文件a.h
: #ifndef a_h
: #define a_h
: #include "b.h" //好像不行
: class A
: {
: vector mylist;
: }

q***s
发帖数: 2243
5
分号我忘了加了,确定不是因为这个问题
因为编译器说:
1、A中B没有定义
2、B中A没有定义
3、print不是一个函数
当然,include的头文件不同,每次并不是都给出这三个错误
我觉得就是头文件组织的不好
a***o
发帖数: 969
6
那在家一个declaration
a的定义前加class b;
b同理

【在 q***s 的大作中提到】
: 分号我忘了加了,确定不是因为这个问题
: 因为编译器说:
: 1、A中B没有定义
: 2、B中A没有定义
: 3、print不是一个函数
: 当然,include的头文件不同,每次并不是都给出这三个错误
: 我觉得就是头文件组织的不好

q***s
发帖数: 2243
7
多谢!!!!
可以了。只加头文件还不行,还必须在两个类的定义里加上对方的声明。
谢谢!
o******r
发帖数: 259
8
exactly

【在 a***o 的大作中提到】
: 那在家一个declaration
: a的定义前加class b;
: b同理

1 (共1页)
进入Programming版参与讨论
相关主题
弱问C++一个问题 一直不解又一个初级问题: C++中多如牛毛的#define格式
问低级问题问个两个.h文件互相include的问题
c function 在 c里调用和C++调用结果不一样C 里面有办法永久改变一个指针的属性吗?
问个templateglobal variable usage question in C++
另一个Fortran 问题Why should i include .cpp instead of .h
c++,这种做法不行?怎样include一个函数
最基本的C语言编程问题请教gcc 编译的时候要包括 header source file 吗?
弱问c++里有没有NULL这个keyword?is there any lib can read .Z file in c++/c program?
相关话题的讨论汇总
话题: class话题: 文件话题: ifndef话题: 头文件话题: endif