C++ 将许多标头连接到一个并使用这些标头功能

Posted

技术标签:

【中文标题】C++ 将许多标头连接到一个并使用这些标头功能【英文标题】:C++ connect many headers to one and use those headers functions 【发布时间】:2015-01-18 18:55:25 【问题描述】:

伙计们,我有一个问题,我不知道如何在一个标头中连接多个标头,我们称之为“主标头”并使用该标头中的函数,例如

// A.h
#include <iostream>

class A 
public:
  A();
  void showMessage(string msg);
;

// B.h
class B 
public:
  B();
  void CountMessages()
;

// C.h
#include "A.h"
#include "B.h"

class C : public B, public A 
public:
  C();
  void DoSomething();

并且我想使用类“c”的对象和/或“a”类的对象从类“b”调用函数 CountMessages,例如

//c.cpp
#include "C.h"
#include "B.h"    
#include "A.h"

extern A b_obj;
extern B a_obj;

C::DoSomething() 
  b_obj.CountMessages();
  a_obj.showMessage("Hello");

【问题讨论】:

C++ class forward declaration 的可能重复项 【参考方案1】:

我有一个问题,我不知道如何在一个标头中连接多个标头,我们称之为“主标头”并使用该标头中的函数,

创建文件并为所有其他头文件添加#include 行。

MasterHeader.h:

#include "A.h"
#include "B.h"
#include "C.h"

c.cpp:

#include "MasterHeader.h"

警告:我一般不推荐这种做法。这仅在"MasterHeader.h" 提供的接口是主要接口时才有用,"A.h""B.h""C.h" 服务于易于维护的目的。

【讨论】:

好吧,“C.h”就是“MasterHeader.h”,所以我应该将它包含到任何 cpp 文件中并调用我需要的所有函数?

以上是关于C++ 将许多标头连接到一个并使用这些标头功能的主要内容,如果未能解决你的问题,请参考以下文章

将标准输入管道连接到 cURL 标头

无法使用私有 IP 地址连接到 GCP CloudSQL(CORS 错误预检缺少允许源标头)

stomp nodejs在连接时不发送标头

连接到 WebSocket 时如何覆盖 Chrome 中的 Origin 标头?

用pandas编写单个CSV标头

为 iframe 设置自定义 HTTP 请求标头