I've two classes that implement PIMPL: State and StateMachine.
They implement Private::State and Private::StateMachine.
Private::StateMachine has an "addState(Private::State &)" method. I want to write the addState() method into its PIMPL class, in order to do
StateMachine machine;
State state;
machine.addState(state);
How can I pass to Private::StateMachine inside StateMachine the object Private::State pimpled in State?
StateMachine.h
#include <memory>
class State;
namespace Private {
class StateMachine;
} // namespace Private
class StateMachine
{
public:
StateMachine();
~StateMachine();
// want to add this
void addState(const State &state);
private:
std::unique_ptr<Private::StateMachine> m_stateMachine;
};
State.h
#include <memory>
namespace Private {
class State;
} // namespace Private
namespace StateMachine {
class State
{
public:
State();
~State();
private:
std::unique_ptr<Private::State> m_state;
};