首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

does not name a type?该如何处理

2012-03-22 
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
[解决办法]

探讨
唉,楼主你好像没搞清什么是枚举类型吧,你是不是把enum和struct这个关键字的意思搞混了,enum是定义枚举类型的,而枚举类型里面的成员都是常量,并且不能在里面定义变量的,struct关键字是定义结构体类型的;结构体中可以定义变量或函数。
修改如下:
typedef enum{
a,b}def_t;
这里的a和b是常量,a的值是0,b的值是1

[解决办法]
探讨

引用:
唉,楼主你好像没搞清什么是枚举类型吧,你是不是把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后面了

这些呢?

热点排行