//Filea.h |
|
void func(const char *, int i); |
|
——————————————————————————————
//Fileb.cpp | //Filec.cpp
#include "Filea.h" | #include<iostream>
| #include "Filea.h"
void func(const char *, int i) | int main()
{ | {
...//函数定义 | ...
} | func("Hello", 5);
| ...
| }
如上三个文件在FIlec.cpp调用函数func()的过程中,计算机是怎么运作的?因为func()的函数定义是放在Fileb.cpp里面的,而原型却又放在了另外一个头文件里面。难道在main()函数里面调用func()的时候系统又要再通过Filea这个头文件去找函数func()的定义吗?C++ primer里面说建议把函数原型,常量,类声明等放在头文件里面,再把这些内容的具体定义放在另外一个cpp文件里面,请问这样做到底有什么好处,如果把Filea和Fileb合并成一个文件,再让Filea去包含这个新文件有什么不同的吗?各位在实际编程中又是否是这样做? |