我的班级有问题。
我有两个单独的标题。 Color.h和Painter.h:
1)。 Color.h
class Color{
int number;
public:
void initialize();
void change (Painter draw);
}
2)。 Painter.h
class Painter{
Color a,b;
public:
void get();
void draw();
}
我的问题是,我需要在Color类中使用Painter,而类Painter使用Color。在Qt中,我得到一个错误,画家不是一个类型。我怎样才能解决这个问题?该问题的解决方案是什么?
答案 0 :(得分:3)
在Painter.h
中,您需要包含Color.h
,因为您拥有Color类型的对象。
但是在color.h
中,您可以为Painter
类添加前向声明:
class Painter;
class Color{
int number;
public:
void initialize();
void change (Painter draw); //a forward declaration is enough for this
}
方法void change (Painter draw);
您将在color.cpp
中定义它并在那里包含painter.h