C++ CPP文件和头文件应该放什么内容

同一个工程下,假如我在a.h里声明了一个函数void a()
然后在a.cpp里定义了这个函数void a(){//code}
然后我需要在b.cpp里使用a这个函数,请问这3个文件的#include(假如需要的头文件有stdio.h, mysql.h)到底该怎么写才能实现我要的功能,而且不会出现重复定义的情况?
谢谢

如果你有头文件 a.h你用宏把它包起来,就不会出现重复定义。例如:#ifndef _INCL_A_H#define _INCL_A_H
这里是你原来的a.h的内容
#endif
你可以把宏加入a.h
-------
a.cpp 里 #include "a.h"
b.cpp 里 #include "a.h"
编译就没问题。追问

我现在已经将
#include
#include
#include
#include
#include
这5行放到了a.h中,然后a.h中声明了一个MYSQL t;
然后我在a.cpp和b.cpp中都添加了#include "a.h",然后编译到link obj文件那一步的时候提示MYSQL类重复定义,请问下上面5行#include应该放到哪些文件中?

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-08
这个很简单告诉你一个简单办法
c++程序文件建立后一般都有个 stdafx.h 文件
在这个文件里边声明可能重复定义的 头文件 比如 stdio.h, mysql.h
然后在你想要用到的.cpp文件开头声明 stdafx.h
注意声明位置

#pragma once
#include "targetver.h"
#define WIN32_LEAN_AND_MEAN
// Windows 头文件:
#include <windows.h>
#include <atlstr.h>
#include <WinDef.h>//在这些地方插入声明
#include <stdio.h>
#include <MMSystem.h>
#pragma comment(lib, "WINMM.LIB")
#include "include/ximage.h"
#ifdef DLL1_API
#else
#define DLL1_API extern "C" __declspec(dllexport)
#endif
第2个回答  2013-04-08
在b.cpp里只要#include "a.h"就可以了,头文件一般都是存放函数的声明,CPP文件里存放函数的实现。你已经做的很正确了。
第3个回答  2013-04-08
b.cpp里面#include "a.h"
相似回答