does not name a type?该如何处理
does not name a type?//以下为类A#includeB.htypedef enum{int aint b}def_tclass A{}//以下为类B#
does not name a type?
//以下为类A
#include<B.h>
typedef enum{
int a;
int b;
}def_t;
class A{
};
//以下为类B
#include<A.h>
class A;
class B{
def_t def;
};
为什么报def_t未定义啊?
[解决办法]
typedef enum{
a,b
}def_t;
[解决办法]
唉,楼主你好像没搞清什么是枚举类型吧,你是不是把enum和struct这个关键字的意思搞混了,enum是定义枚举类型的,而枚举类型里面的成员都是常量,并且不能在里面定义变量的,struct关键字是定义结构体类型的;结构体中可以定义变量或函数。
修改如下:
typedef enum{
a,b}def_t;
这里的a和b是常量,a的值是0,b的值是1
[解决办法]
[解决办法][解决办法]a.h别包含b.h
[解决办法]你两个头文件相互包含了,
这样依赖了头文件包含顺序了,
怎么没有
#pragma once
或者
#ifndef _A_H_
...
...
#define _A_H_
#endif
有时候可能先包含"B.h"
再包含"A.h"
这样A.h的内容就在B.h后面了
这些呢?