请教:出错了怎么办?

wolfzxq 2003-05-08 04:41:11
在用编译以下C++程序时
#include <iostream.h>
#include <stdlib.h>
typedef struct
{
float *opd;
int opdSize;
int top;
}OPERAND;

class operand1
{
private:
OPERAND oprand;
public:
operand1();
void InistOprand(int opdSize);
void Push(float& ch);
float Pop(void);
int IsEmpty();
friend void display(operand1 &opd);
};
出现两个错误:
:\vc work folder\pression\operand.h(9) : error C2371: 'OPERAND' : redefinition; different basic types
j:\vc work folder\pression\operand.h(9) : see declaration of 'OPERAND'
j:\vc work folder\pression\operand.h(12) : error C2011: 'operand1' : 'class' type redefinition
operand.cpp
想了很久也不知道哪里出错。
请高手指点。
...全文
54 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wolfzxq 2003-05-12
  • 打赏
  • 举报
回复
请问我该怎样给分!
wolfzxq 2003-05-12
  • 打赏
  • 举报
回复
终于明白了。谢谢各位。
yiminggw 2003-05-09
  • 打赏
  • 举报
回复
study
ahuinb 2003-05-09
  • 打赏
  • 举报
回复
不加
#ifndef MYFILE_H_
#define MYFILE_H_
在最末尾加上:
#endif
当你每引用一次头文件时编译器就会对你的头文件编译一次,
因为你头文件的内容在上一次编译器已经记住了,所以在下
一次编译时会出现重复定义的错误。
在加入
#ifndef MYFILE_H_
#define MYFILE_H_
在最末尾加上:
#endif
第一次编译时
#ifndef MYFILE_H_ (条件为真)
#define MYFILE_H_
第二次编译,第三次...
#ifndef MYFILE_H_ (条件为假)
以下的内容不编译
wolfzxq 2003-05-09
  • 打赏
  • 举报
回复
搞定。
多谢大侠指点。
请问为什么不加宏定义会出错呢?
arfi 2003-05-08
  • 打赏
  • 举报
回复
不知你这段代码是不是一个头文件中的,如果是的话,在此头文件上加上几条预处理语句:
假设头文件名为myfile.h
在最开头加上两句:
#ifndef MYFILE_H_
#define MYFILE_H_
在最末尾加上:
#endif
wolfzxq 2003-05-08
  • 打赏
  • 举报
回复
以上只是一个代码片断。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧