C ++类定义分为两个头?

时间:2014-06-24 13:35:00

标签: c++ class header-files partial-classes

在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;
}

1 个答案:

答案 0 :(得分:3)

您不能以class方式扩展,但可以使用pimpl模式:

class A {
public:
    void foo1(int b);
private:
    AImpl* pimpl;

}

然后让AImpl.hAImpl.cpp隐藏所有私人信息。