社区
C++ 语言
帖子详情
does not name a type?
从头来过
2012-03-14 06:33:09
//以下为类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未定义啊?
...全文
4536
14
打赏
收藏
does not name a type?
//以下为类A #include typedef enum{ int a; int b; }def_t; class A{ }; //以下为类B #include class A; class B{ def_t def; }; 为什么报def_t未定义啊?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
从头来过
2012-03-15
打赏
举报
回复
嗯 #ifnded
#define
#endif
都有写,目前查找问题是A B互相包含了 ,谢谢各位 结贴
lyhylex
2012-03-15
打赏
举报
回复
你两个头文件相互包含了,
这样依赖了头文件包含顺序了,
怎么没有
#pragma once
或者
#ifndef _A_H_
...
...
#define _A_H_
#endif
有时候可能先包含"B.h"
再包含"A.h"
这样A.h的内容就在B.h后面了
这些呢?
qqwangtanhua
2012-03-15
打赏
举报
回复
看不懂
支持英文数字
2012-03-15
打赏
举报
回复
有些没注意到。mark下。
超级管理员9527
2012-03-15
打赏
举报
回复
a.h别包含b.h
从头来过
2012-03-15
打赏
举报
回复
加了呢[Quote=引用 6 楼 xiyoulaoyuanjia 的回复:]
加头文件吧 青年!。。。
[/Quote]
从头来过
2012-03-15
打赏
举报
回复
使用尖括号表示在包含文件目录中去查找(包含目录是由用户在设置环境时设置的),而不在源文件目录去查找.使用双引号则表示首先在当前的源文件目录中查找,若未找到才到包含目录中去查找。
而且我用了#inlucede也还是报错未定义。""[Quote=引用 7 楼 lou0378 的回复:]
楼主又把系统头文件和用户头文件搞混了,包含系统头文件用 #include <头文件>,包含用户头文件用 #include "头文件",一个是用尖括号,一个是用双引号,如果包含的头文件是用户自己定义的,而且是用尖括号,编译也通不过的。
你的代码修改为:
//以下为类A
#include "B.h"
typedef union{
a,b
}def_t;
class A{
}……
[/Quote]
心已死两目茫然
2012-03-15
打赏
举报
回复
楼主又把系统头文件和用户头文件搞混了,包含系统头文件用 #include <头文件>,包含用户头文件用 #include "头文件",一个是用尖括号,一个是用双引号,如果包含的头文件是用户自己定义的,而且是用尖括号,编译也通不过的。
你的代码修改为:
//以下为类A
#include "B.h"
typedef union{
a,b
}def_t;
class A{
};
//以下为类B
#include "A.h"
class A;
class B{
def_t def;
};
xiyoulaoyuanjia
2012-03-14
打赏
举报
回复
加头文件吧 青年!。。。
blingpro
2012-03-14
打赏
举报
回复
[Quote=引用 4 楼 c_c_study 的回复:]
引用 2 楼 lou0378 的回复:
唉,楼主你好像没搞清什么是枚举类型吧,你是不是把enum和struct这个关键字的意思搞混了,enum是定义枚举类型的,而枚举类型里面的成员都是常量,并且不能在里面定义变量的,struct关键字是定义结构体类型的;结构体中可以定义变量或函数。
修改如下:
typedef enum{
a,b}def_t;
这里的a和b是常量,a的值是0,b的值是1……
[/Quote]
这样应该没有错的,头文件包括#include"A.h"
从头来过
2012-03-14
打赏
举报
回复
[Quote=引用 2 楼 lou0378 的回复:]
唉,楼主你好像没搞清什么是枚举类型吧,你是不是把enum和struct这个关键字的意思搞混了,enum是定义枚举类型的,而枚举类型里面的成员都是常量,并且不能在里面定义变量的,struct关键字是定义结构体类型的;结构体中可以定义变量或函数。
修改如下:
typedef enum{
a,b}def_t;
这里的a和b是常量,a的值是0,b的值是1
[/Quote]我往这上面写错了,代码是:
//以下为类A
#include<B.h>
typedef union{
int a;
int b;
}def_t;
class A{
};
//以下为类B
#include<A.h>
class A;
class B{
def_t def;
};
报错,未找到这个类型
qixing1115
2012-03-14
打赏
举报
回复
[Quote=引用 2 楼 lou0378 的回复:]
唉,楼主你好像没搞清什么是枚举类型吧,你是不是把enum和struct这个关键字的意思搞混了,enum是定义枚举类型的,而枚举类型里面的成员都是常量,并且不能在里面定义变量的,struct关键字是定义结构体类型的;结构体中可以定义变量或函数。
修改如下:
typedef enum{
a,b}def_t;
这里的a和b是常量,a的值是0,b的值是1
[/Quote]
楼主对类、结构体、枚举搞混了
心已死两目茫然
2012-03-14
打赏
举报
回复
唉,楼主你好像没搞清什么是枚举类型吧,你是不是把enum和struct这个关键字的意思搞混了,enum是定义枚举类型的,而枚举类型里面的成员都是常量,并且不能在里面定义变量的,struct关键字是定义结构体类型的;结构体中可以定义变量或函数。
修改如下:
typedef enum{
a,b}def_t;
这里的a和b是常量,a的值是0,b的值是1
blingpro
2012-03-14
打赏
举报
回复
typedef enum{
a,b
}def_t;
‘string’ does not name a
type
错误解析
本文解决了在C++中使用string类型时遇到的编译错误'string' does not name a
type
。通过添加命名空间std或直接使用std::string来解决此问题。
error: ‘变量名‘ does not name a
type
|
本文介绍了在C++编程中遇到的错误:'变量名' does not name a
type
。作者在头文件中定义变量时遇到了问题,变量tasks、aa、nodes、i等无法识别。通过阅读文章,了解到该错误通常发生在main函数外部尝试赋值全局变量时。为解决这个问题,作者将相关代码放入函数内部,从而避免了错误。
“xxx”does not name a
type
错误
本文深入探讨了编程中常见的'xxx' does not name a
type
错误,分析了错误产生的两大原因:头文件和命名空间问题,以及变量作用域错误。文章提供了具体的解决思路,帮助开发者有效定位并解决此类编译错误。
error: 'QChartView' does not name a
type
在尝试使用QtChart库时遇到编译错误'QChartView' does not name a
type
。解决方法是在项目.pro文件中添加QT += charts,并确保在代码中正确引入头文件,从而成功编译并解决问题。
c++ class does not name a
type
本文详细解析了在C++编程中遇到的编译错误'declare class does not name a
type
'的原因及解决方法,包括引用类命名空间未包含、类头文件未包含、类名写错和循环引用头文件等常见情况,并提供了前置声明的注意事项,帮助开发者快速定位和解决此类问题。
C++ 语言
65,212
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章