c++ - 不同文件的类声明

标签 c++ class declaration

我在本网站的其他地方找不到类似的问题,但是是否可以在两个不同的文件上声明一个类。

例如,一个文件中的所有公共(public)类组件以及不同文件中的私有(private)组件和其他组件。

publics.h

    class test {
     public:
        int geta();
        void seta(int); 
    };

privates.h

    class test {
     private:
        int a;
    };

上面的方式肯定是错误的,但是有没有这样的方法。

最佳答案

有一种方法可以获得非常相似的东西:private inheritance .

// private.hpp
class test_details {
  protected:
    int a;
};

// public.hpp

#include "private.hpp"

class test : private test_details {
  public:
    int geta() const { return a; }
    void seta(int i) { a = i; }
};

请注意,您仍然需要(间接)在使用公共(public)类的任何模块中包含私有(private) header ,因此您并没有真正以这种方式隐藏任何内容。

关于c++ - 不同文件的类声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11308267/

相关文章:

java - 如何创建一个没有此错误的包?

objective-c - 在 Objective c 中声明或不声明

c++ - 具有结构数据类型的链表

c++ - MemoryMappedViewAccessor c++ 模拟

.net - 如何将 boost::asio 套接字转换为 C++/CLI .Net 套接字?

Objective-C 多重转换

c# - C++/命令行界面 : How do I declare abstract (in C#) class and method in C++/CLI?

c++ - boost::asio 和使用异步的多个客户端连接

c++ - 如何使用 CUDA Thrust 执行策略覆盖 Thrust 的低级设备内存分配器

android - 如何在类上使用 Kotlin 扩展函数?