一个头文件,声明的函数、类型、结构体等,只能于一个源文件实现。
包含同一个头文件的多个源文件,不能定义相同名称的全局变量,即便类型不同也不可以。(但常量却可以)。
包含同一个头文件的多个源头件,可以分别在源文件中声明并定义类型、结构体,但不能申明并定义函数。但这却会导致一个有趣的问题,请看实例分析。
A.h 声明了3个函数,分别在B.cpp C.cpp D.cpp 中实现
/*
* File: main.cpp
* Author: Vicky
*
*/
#include "A.h"
/*
*
*/
int main(void) {
hello1();
hello2();
hello3();
return 0;
}
B.cpp
#include "A.h"
#include <iostream>
/**
* 在源文件中声明并一定Human类
*/
class Human {
public:
void say() {
std::cout << "B.cpp Human say" << std::endl;
}
};
void hello1() {
std::cout << "B.cpp hello1" << std::endl;
Human h;
h.say();
}
C.cpp
#include "A