1 c++
我想隐藏实现文件中的实现.如果对象不是公共的,我不希望对象的标题在我的类被使用的任何地方泄漏.
假设A.h我的课程有头文件A:
#include "Foo.h"
class A{
private:
Foo foo;
public:
do_stuff();
};
Run Code Online (Sandbox Code Playgroud)
现在无论我在哪里A.h,Foo.h也包括在内.但是我没有在课外的Foo任何地方上课A.我宁愿没有这#include "Foo.h"条线.有没有办法在实现中移动'foo'变量的声明A.cpp?
我怀疑一个可能的解决方案是添加一层抽象类(接口类比).这是最好的解决方案吗?
谢谢.
Dav*_*vid 12
使用指向Foo的指针并动态分配它,而不是使用成员对象.那么你只需要在A.cpp中包含Foo.h.
class Foo;
class A{
private:
Foo* foo;
public:
do_stuff();
}
Run Code Online (Sandbox Code Playgroud)