在C ++中是否可以将类成员的定义拆分为两个头文件?编码它的适当方法是什么?
例如:
a1.h
class A {
public:
int var;
void foo1(int b);
}
a1.cpp
#include "a1.h"
void A::foo1(int b) {
cout << b;
}
a2.h
[extend] class A {
public:
void foo2(double c);
}
a2.cpp
#include "a2.h"
void A::foo2(double c) {
cout << c;
}
答案 0 :(得分:3)
您不能以class
方式扩展,但可以使用pimpl
模式:
class A {
public:
void foo1(int b);
private:
AImpl* pimpl;
}
然后让AImpl.h
和AImpl.cpp
隐藏所有私人信息。