怎么用#ifndef

自己写了a.h,a.cpp.test.cpp
///test.cpp///
#include<iostream.h>
#include<a.h>
.....
////test.cpp///
a.cpp里面写了cout<<"XXX";
为了避免重定义iostream.h该怎么用#ifndef,
a.cpp里面不加#include<iostream.h>编译没问题,但是构件时提示
'cout' : undeclared identifier,该怎么处理。
我用的是VC6.0
#ifndef写在哪个文件里
谢谢!

#ifndef _a_h//判断是否已经定义了,没定义的话则有以下定义
#define _a_h
//头文件内容
#endif

每个CPP文件是一个最小编译单位,用到输出流对象,当然应该包含相应的头文件,所以应加上#include<iostream>

写在你防止重复定义的那个头文件里
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-11-30
哪个头文件会被多次include,就写在哪个头文件里

***********************************************

你可以打开iostream.h这个库文件看看,里面其实已经用了#ifndef,不会出现那种问题。可以随便#include<iostream.h>

至于#ifndef的用法是这样的:
在头文件第一行前加入:
#ifndef XXX_H
#define XXX_H
在该头文件最后一行后加入:
#endif
也就是让头文件中原来的代码放到上面两条语句中。
其中XXX_H代表头文件名
第2个回答  2015-07-31
#ifndef _a_h//判断是否已经定义了,没定义的话则有以下定义
#define _a_h
//头文件内容
#endif

每个CPP文件是一个最小编译单位,用到输出流对象,当然应该包含相应的头文件,所以应加上#include<iostream>

写在你防止重复定义的那个头文件里
第3个回答  推荐于2016-09-29
一般用于宏条件,即如果未定义则执行相应的动作,主要是用来重新定义
如:
#ifndef TRUE
#define TRUE 1
#endif
第4个回答  2008-11-30
#ifndef XXX_H //等同于 #if !define XXX_H
#define XXX_H
在该头文件最后一行后加入:
#endif