C++工程结构的肤浅理解
关键是理解:先声明后使用,所以工程结构都是围绕着include指令展开的。
h文件中只要包含函数、类、变量
的声明
与h文件同名的cpp文件,需要包含相应的函数、类、变量
的定义
其他cpp文件要使用到的函数、类、变量
只要include相应的头文件即可,即当前cpp文件中就有了相应的函数、类、变量
的声明,编译器会在编译的时候会从h文件对应的cpp文件中取得相应的函数、类、变量
的定义。
即一个函数、类、变量
的定义在整个工程中只能有一个cpp文件定义。
如果工程中两个cpp文件中定义同样的函数,即使不在各自的h文件中声明,也不include,这样会出现如下的错误
error: multiple definition of
一个简单的例子:
my.h
//声明函数
int sum(int m, int n);
my.cpp
//计算从m加到n的和
int sum(int m, int n) {
int i, sum = 0;
for (i = m; i <= n; i++) {
sum += i;
}
return sum;
}
main.cpp
#include <stdio.h>
#include "my.h"
int main() {
printf("%d\n", sum(1, 100));
return 0;
}