技術文章

背景

問題

以下のコードのような、スクリーンクラス「Screen」とウィジットクラス「Widget」を考える。

//  file: "screen.h"
class Widget;
class Screen
{
    .....
    void    addWidget(Widget *);
    .....
};
//  file: "screen.cpp"
#include "screen.h"
#include "widget.h"
.....
//  file: "widget.h"
class Screen;
class Widget
{
public:
    Widget(Screen *screen, ...);
    .....
public:
    Screen  *screen() const { return m_screen; }
    void    setScreen(Screen *);
private:
    Screen  *m_screen;
    .....                   //  Widget 固有情報
};
//  file: "widget.cpp"
#include "screen.h"
#include "widget.h"
.....

解決方法