我收到标题中声明的错误消息。我正在尝试构建一个继承了类Shape的类Line。
中出现错误Shape(color) {}
在行构造函数中执行。
标题文件(形状和线条合二为一,颜色为另一种)
Shape.h:
#ifndef SHAPE
#define SHAPE
#include "Image.h"
class Shape{
private:
Color color;
public:
Shape (const Color & col) : color(col){}
virtual void Draw(Image & figure) const = 0;
};
class Line : public Shape{
public:
Line (int x1, int y1, int x2, int y2, const Color & color);
virtual void Draw(Image & figure) const;
private:
int x1, y1, x2, y2;
};
#endif // SHAPE
Image.h:
struct Color {
Color( unsigned char r, unsigned char g, unsigned char b )
: red( r ), green( g ), blue( b ) {
}
Color() : red( 0 ), green( 0 ), blue( 0 ) {
}
unsigned char red, green, blue;
};
这是Shape.cpp
#include "Shape.h"
Line::Line( int x1, int y1, int x2, int y2, const Color &color )
: x1( x1 )
, x2( x2 )
, y1( y1 )
, y2( y2 )
, Shape(color){
}
答案 0 :(得分:0)
struct Color
必须在被用作Shape
的成员之前声明。
答案 1 :(得分:0)
似乎从Line类中的Draw声明中缩回“void”有效。出于某种原因