C++ 隐式声明的编译器错误定义
C++ compiler error definition of implicitly declared
大家好,今天我的代码有问题。我创建了一个计算方形圆形和矩形面积的程序。具有形状的基类。其中 UML 将 shape 作为抽象类,其中包含 public area():d ouble、getName():string,和 getDimensions:string,从具有受保护高度和宽度的形状派生的矩形,以及一个公共矩形(h:double,w:double),然后是从矩形派生的正方形,只有一个公共正方形(h:double),最后是从具有私有半径的形状派生的圆, 和一个公共圈子(r:double)。到目前为止,我的代码已经走得很远,但在我的形状中.cpp文件在第 10 行收到一个错误,上面写着 shape.cpp:10:错误:隐式声明的"constexpr shape::shape()"的定义 形状::形状()
这是我的完整代码的链接:https://gist.github.com/anonymous/0eedd7719a34655488fb
形状.cpp文件:
#include "shape.h"
#include "circle.h"
#include "rectangle.h"
#include "square.h"
#include <QDebug>
#include <QString>
#include <iostream>
using namespace std;
shape::shape()
{
};
感谢您的帮助
您需要将
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
然后,您可以在形状中创建定义.cpp如下所示:
shape::shape()
{
}
末尾没有分号。
相关文章:
- MSVC多行宏编译器错误
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++,我收到一个无法理解的编译器错误
- 我收到同义重复编译器错误。我应该如何修复"类型"X"的参数与类型"X"的参数不兼容?
- 重载方法的方式会在使用临时调用时生成编译器错误
- 尝试使用继承和模板实现CRTP.Visual Studio正在生成编译器错误
- 编译器错误:destuctor 的更宽松的抛出说明符
- Android NDK clang 编译器错误在 Windows 上显示'No such file or directory'
- C++ G++ 编译器 - 错误:隐式声明的定义
- 这个失败的测试是将零添加到空指针未定义的行为、编译器错误还是其他什么?
- 模板模板参数和模板别名:编译器错误?
- C++ 编译器错误:P1LinkedList.cpp:145:错误:重载的"to_string(int&)"调用不明确
- 在gcc中意外调用了Const重载.编译器错误或兼容性修复程序
- C1001内部编译器错误是由于矢量初始化(如数组)引起的
- 编译器错误(英特尔并行工作室 2019 与 Visual Studio 社区 2019)
- 如何在C++中克服此 C4430 编译器错误?
- 尝试使用 WinBGI 显示文本时出现编译器错误
- 使用typedef'ed返回类型声明友元函数时出现编译器错误
- 如何在类模板的成员函数中正确调用函数对象?正在生成 Visual Studio 编译器错误 C2440
- C++自定义分配器大小参数作为模板参数会引发编译器错误