c++ - 为什么头文件看到源文件的包含?

标签 c++

我有以下代码:

头文件:

#pragma once

#include <uWS/uWS.h>

typedef __uint32_t ClientID;
typedef __uint16_t Port;

class ClientServer
{
public:
    ClientServer();
    ClientServer(const ClientServer&) = delete;
    ClientServer& operator=(const ClientServer&) = delete;
    ~ClientServer();

    bool run(const std::string& host, Port port);
    bool disconnect();

    bool isConnected(ClientID id);
    bool send(std::initializer_list<ClientID> idList, const std::wstring& message);
};

源文件:

#include <stdint.h>
#include <string>
#include <initializer_list>

#include "client_server.h"

ClientServer::ClientServer()
{
}

如您所见,头文件使用了一些标准类,如 std::string , std::initializer_list , 来自 <stdint.h> 的类型.而且这段代码编译通过,为什么头文件在源码中看到导入的头文件?

最佳答案

因为此源文件包含在其他库头文件之后。尝试将其移至顶部,您将收到编译器错误。

这就是 #include 所做的 - 它只是复制头文件内容并将其粘贴到 #include 位置。

关于c++ - 为什么头文件看到源文件的包含?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48271338/

相关文章:

c++ - 如何检查对象是否为基类类型

C++指针: dereferencing,赋值等

c++在构造self期间将* this作为引用传递

c++ - 两台具有相同 IP 地址的计算机 - 使用套接字的聊天应用程序

c++ - 读写缓冲区问题

javascript - Node.js、g++ (gcc) 和子进程 - gcc 无法打开输出文件错误

php - C++:提高ifstream二进制文件读取速度

c++ - 如何仅将实现公开给 pimpl 习语中的一组指定类?

c++ - 如何检索基于 char 数组的枚举索引值?在 C++ (cpp) 中

c++ - 在构造函数主体中使用初始化列表中的字段