大家好,今天我的代码有问题。我创建了一个计算方形圆和矩形区域的程序。具有基类形状。其中UML的形状为带有public area()的抽象类:double,getName():string和getDimensions:字符串,从具有受保护高度的形状和宽度派生的矩形,以及一个公共矩形(h:double,w: double),后面是一个矩形的派生正方形,只有一个公共广场(h:double),最后是一个从私有半径的形状得到的圆和一个公共圆(r:double)。 到目前为止我的代码已经在我的shape.cpp文件中得到了很多,我在第10行得到一个错误,上面写着shape.cpp:10:错误:隐式声明的定义' constexpr shape :: shape()&# 39; 形状::形状()
这是我完整代码的链接:https://gist.github.com/anonymous/0eedd7719a34655488fb
shape.cpp文件:
#include "shape.h"
#include "circle.h"
#include "rectangle.h"
#include "square.h"
#include <QDebug>
#include <QString>
#include <iostream>
using namespace std;
shape::shape()
{
};
感谢您的帮助
答案 0 :(得分:3)
您需要将shape()
构造函数添加到类声明中,如下所示:
#ifndef SHAPE_H
#define SHAPE_H
#include <QString>
#include <QDebug>
using namespace std;
class shape
{
public:
shape();
virtual double area()=0;
virtual QString getName()=0;
virtual QString getDimensions()=0;
virtual~shape(){}
};
#endif
然后,您可以在shape.cpp中创建定义,如下所示:
shape::shape()
{
}
最后没有分号。