Определение класса C ++ разделено на два заголовка?

Возможно ли в 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

Решение

Вы не можете продлить class таким образом, но вы можете использовать pimpl шаблон:

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

}

а затем есть AImpl.h а также AImpl.cpp это скрывает все личные детали.

3

Другие решения


По вопросам рекламы [email protected]