0
即时消息在OOP新和我在这个任务中不断有这个错误。也许你可以帮助我。“错误:没有匹配的函数调用distance :: distance()”...不能从main中的类声明对象吗?
这这里是类的头文件:
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
}
最后,这是出现在错误的位置,主要是我尝试从类Distance中声明一个对象。
int main(int argc, char *argv[])
{
Distance d1; **/*right here*/**
编辑: 如果我输入:距离D1 =距离(1231, “CSDVS”);它可以工作,但我需要一个空物体,因此我可以使用超载>>运算符
我没有看到任何需要0个参数的'Distance'构造函数,是吗? – Praetorian
另外,你还没有继承构造函数,所以'Magnitude'的默认构造函数也是无效的 – yizzlez
我知道,如果输入:Distance d1 = Distance(1231,“CSDVS”);它确实有效,但是我需要一个空物体,所以我可以使用超载>> – user3027470