目前,即時通訊工作在一個CVector類,一切工作正常,直到我想在其他類如CVector v;
中使用矢量和稍後使用v
。類有不止一個構造函數
好,問題就出在那裏 - 我會用
struct Vector3_t {
float x, y , z;
};
,但我想使用運營商的載體,所以我做了一個類:
class CVector
{
public:
//missing usage: CVector vec; // for later usage in example.
CVector() // usage: CVector v();
{
this->x = 0, this->y = 0, this->z = 0;
}
CVector(const float x = 0, const float y = 0) { // usage: CVector v(1,2); // but z is always 0
this->x = x, this->y = y,this->z = 0;
}
CVector(const float x = 0, const float y = 0, const float z = 0) { // usage: CVector v(1,2,3);
this->x = x, this->y = y, this->z = z;
}
CVector & CVector::operator += (const CVector & v) {
this->x += v.x; this->y += v.y; this->z += v.z; return *this;
}
const CVector CVector::operator + (const CVector& v) const {
CVector r(*this); return r += v;
}
float x, y, z;
~CVector() {};
protected:
private:
};
在行動:
int main() {
CVector vec;
return 0;
}
輸出錯誤: 嚴重級代碼說明項目文件行抑制狀態 錯誤(活動)類「CVector」具有多個默認構造函數mebad c:\ Users \ lifesucks \ Documents \ Visual Studio 2015 \ Projects \ mebad \ mebad \ main.cpp 43
*嚴重級代碼說明項目文件行抑制狀態 錯誤C2668'CVector :: CVector':模糊調用重載函數mebad c:\ users \ lifesucks \ documents \ visual studio 2015 \ projects \ mebad \ mebad \ main.cpp 43
*
基本上我只是不知道如何爲這種類型的用途聲明類時,有多個構造函數,我不想用更多的樂趣像CVector :: constr1那樣使用3個浮動或類似的東西,必須有辦法這樣做,我可以得到一些幫助嗎?謝謝!
_「但我想使用運營商的載體,所以我做了一類」 _'struct's可以有操作符重載過。 – emlai
@格雷特不應該在那裏,我只是試圖顯示用戶使用不同的方式,但沒有發現它,給我秒我會編輯它不會錯誤,如果我想用這種方式與類,可以我得到一個幫助?這非常有趣,我不會另外提問。 –
當發佈有關錯誤的代碼問題時,請在問題主體中包含* all *輸出,完成並未經編輯。 –