C语言头文件包含问题

来源:百度知道 编辑:UC知道 时间:2024/06/09 22:03:55
//A.h
#include "B.h"
#include "C.h"
class A
{
public:
B b;
C c;

}

//A.cpp
A::A()
{
//....
}

//B.h
class B
{
public:
int i;
}

//B.cpp
B::B()
{
i=0;
}

//C.h
class C
{
public:
A *p;
}

//C.cpp
C::C()
{
p=NULL;
}
我在每个头文件中用了#ifndef的处理,

在c.h中#include "A.h"

结果C的构造函数出现错误
error C2533: constructors not allowed a return type

怎么解决?

albertkdc - 三级 2009-12-12 16:56 的回答不是问题所在,分号问题只是提问时没有写全。

回答者: Booo0 - 五级 2009-12-12 21:05 这种低级问题我不会去花20分悬赏的!

这不是头文件包含的问题,是类的定义格式不对。头文件中类声明的时候,没有在类结尾加上";"
class A
{
};

构造函数和析构函数不能有返回值类型。 看看你的程序有没有这个错误。
你的类定义里没有构造函数的定义啊。

我感觉没有实际的用途,你可以把你常用的函数编成一个头文件.

你什么问题啊?

哈哈,二楼正解,连问题都没有

------------------------------------
楼下都跟你讲了是你的类里没有声明constructor,你试着先在.h里声明一下试试