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