我有以下代码:
头文件:
#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/