为什么我必须在除主文件之外的单独文件中使用头文件?

问题描述 投票:0回答:1

头文件内容放在使用.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文件

c++ header-files
1个回答
0
投票

在add.cpp中包含add.h的一个原因是为了确保add.h中的声明与add.cpp中的定义一致。尝试将 add.h 更改为

double add(int x, int y);

在第二个示例中,您将收到编译器错误,这是可以保证的。但在第一个示例中,您不会收到编译器错误,您可能会收到链接器错误甚至运行时错误,但不能保证。

换句话说,在对应的cpp文件中包含一个头文件是一种安全检查,以确保两个文件一致。

© www.soinside.com 2019 - 2024. All rights reserved.