"Error: no matching function for call distance::distance()"......无法从 main 中的类声明对象?
"Error: no matching function for call distance::distance()" ...Can´t declare an object from a class in main?
我是OOP新手,在这个任务中我一直有这个错误。也许你能帮我一下。
这里是Class头文件:
class Distance : public Magnitude
{
private:
double Cantidad;
char* Unidad;
public:
Distance(double c, char* u);
Distance(const Distance& d);
double getDistance(){return Cantidad;}
void setDistance(double val) {Cantidad=val;}
char* getUnidad(){return Unidad;}
void setUnidad(char* uni) {Unidad=uni;}
virtual ~Distance();
Distance& operator =(const Distance & d);
Distance operator +(const Distance & d);
Distance operator -(const Distance & d);
Distance operator *(const Distance & d);
Distance operator /(const Distance & d);
friend ostream& operator << (ostream &o,const Distance &d);
friend istream& operator >> (istream &o, Distance &d);
};
这里是cpp文件,我在这里做了定义:
#include "Distance.h"
Distance::Distance(double c, char* u)
{
Cantidad=c;
Unidad=u;
}
Distance::Distance(const Distance& d)
{
cout << "[***] NumComplejo -> Constructor por copia " << endl;
Cantidad = d.Cantidad;
Unidad = d.Unidad;
}
Distance::~Distance()
{
//dtor
}
最后,这是错误出现的地方,在main中,我试图从类Distance声明一个对象。
int main(int argc, char *argv[])
{
Distance d1; **/*right here*/**
编辑:如果我输入:Distance d1=Distance(1231,"CSDVS");它确实可以工作,但我需要一个空对象,以便我可以使用重载on>>操作符
此错误是由于您试图使用未定义的默认构造函数初始化对象而导致的。
[…但是我需要一个空对象,这样我就可以使用重载on>>操作符。
你可以简单地定义一个默认构造函数:
// …
Distance::Distance()
: Cantidad(0)
, Unidad(nullptr)
{}
// …
您也可能希望对字符串使用std::string
。
相关文章:
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 代码在main()中运行,但在函数中出现错误
- 当我在main中声明了我的2d数组时,为什么我的程序会退出
- QML:修改在不同QML文件(而非main.QML)中定义的子对象的属性
- 不确定要在我的main中放入什么才能使我的代码正常工作
- 函数是否可以访问传递给main()的参数
- 在main()之外初始化std::vector会导致性能下降(多线程)
- 我的 int main() 中出现堆栈溢出错误
- C++变量名(可以将 main 声明为变量,但对于其他函数名称则不然)
- 当我尝试在 Main 中调用插入函数时,它不是取数字?
- File.cpp.o:OpenPose 标志 CMakeFiles/.. 的多重定义/main.cpp.o:首先在这里定
- 为什么类和 main() 函数中也有动态内存分配
- 在 main.cpp 的上下文中找不到目录(带有 CMake 的快板)
- 我想在 Main 中用 C++ 调用其他类中的一个类,但我做不到
- "main"函数堆栈中的对象在第一个任务运行时被覆盖 (FreeRTOS)
- 为什么 'main' 函数中的局部 int 变量会自动初始化?
- C++ assigment std::list:<typename>:itrator 在 main 中工作,但在方法中它不起作用
- 为什么在我的 main 函数中声明整数后我的整数数组中会出现错误?
- 为什么要从main()返回NULL?
- "Error: no matching function for call distance::distance()"......无法从 main 中的类声明对象?