头文件内容放在使用.h文件的地方。为什么在add.cpp中使用add.h?
如果不使用头文件
添加.cpp
// There is not declaration int add(int x, int y);
int add(int x, int y)
{
return x + y;
}
主.cpp
#include <iostream>
int add(int x, int y);
int main()
{
std::cout << "The sum of 3 and 4 is " << add(3, 4) << '\n';
return 0;
}
如果使用头文件
添加.h
int add(int x, int y);
主.cpp
#include "add.h"
#include <iostream>
int main()
{
std::cout << "The sum of 3 and 4 is " << add(3, 4) << '\n';
return 0;
}
添加.cpp
#include "add.h" // Why use header file here?
int add(int x, int y)
{
return x + y;
}
添加.h
int add(int x, int y);
主.cpp
#include "add.h"
#include <iostream>
int main()
{
std::cout << "The sum of 3 and 4 is " << add(3, 4) << '\n';
return 0;
}
添加.cpp
#include "add.h" // Why use header file here?
int add(int x, int y)
{
return x + y;
}
输出的main.cpp将是
主.cpp
int add(int x, int y);
#include <iostream>
int main()
{
std::cout << "The sum of 3 and 4 is " << add(3, 4) << '\n';
return 0;
}
添加.cpp
#include "add.h" // Why use header file here?
int add(int x, int y)
{
return x + y;
}
我不明白为什么在add.cpp文件中使用add.h文件
在add.cpp中包含add.h的一个原因是为了确保add.h中的声明与add.cpp中的定义一致。尝试将 add.h 更改为
double add(int x, int y);
在第二个示例中,您将收到编译器错误,这是可以保证的。但在第一个示例中,您不会收到编译器错误,您可能会收到链接器错误甚至运行时错误,但不能保证。
换句话说,在对应的cpp文件中包含一个头文件是一种安全检查,以确保两个文件一致。