我在本网站的其他地方找不到类似的问题,但是是否可以在两个不同的文件上声明一个类。
例如,一个文件中的所有公共(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/