社区
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未定义啊?
...全文
4440
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;
c++ class does not name a
type
declare class does not name a
type
出现这个编译错误主要有四个可能原因,现总结如下: 1.引用的类命名空间未包含 2.引用的类头文件未包含 3.包含了头文件,或者已经前置声明了,则说明所引用的类名写错。 4.循环引用头文件 前置声明要素: 1.前置声明需要注意以上提到的四点 2.尽可能的采用前置声明(做到只有包含继承类的头文件) 3.使用前置声明
C++报错:does not name a
type
C++报错:①does not name a
type
②incompatible
type
s in assignment of 'const char [3]' to 'char [10]' 在编程解决交通指挥灯问题时,遇到如下报错情况 does not name a
type
报错部分代码如下 struct Node{//顶点类型定义 char name[10];//路线名称,如AB int color; }v[13];//图中有13个顶点 v[0].name="AB";v[1].name="AC
does not name a
type
报错的改正方式
does not name a
type
报错的改正方式 原代码如下: 报错:does not name a
type
原因:不知道 改正方法:把初始化放主函数外面,赋值放主函数里面。 改正后代码如下: 编译就通过了,且能运行成功。 收工回家!!!!!!! ...
C++编译报错:does not name a
type
在一个源文件中,要声明或定义一个类的指针时,必须在使用前声明或定义该类,因此下面的代码会报错: class A { public: B *b; }; class B{ public: A *a; }; int main() { return 0; } 报错为“error: ‘B’ does not name a
type
”,就是因为在A类中使用B *b之前没有声明或定义B类,如果在第一行加上一句前置声明(forward declaration)“class B;”,就不会有这样的
由“error string in namespace std does not name a
type
”错误引发
今天学习c++时遇到一个诡异的现象:当编译如下代码时编译器显示错误为: error: 'string' in namespace 'std' does not name a
type
程序如下: struct sales_data { std::string bookNo; std::string bookName; unsigned int count; double price;
C++ 语言
65,176
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章