В настоящее время im работает над классом 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
В основном я просто понятия не имею, как объявить класс для такого использования при наличии нескольких конструкторов, и я не хочу использовать больше удовольствия ction как CVector :: constr1, который использовал бы 3 поплавки или что-нибудь подобное, должен быть способ сделать это таким образом, могу ли я получить немного помощи? Благодаря!
_ «но я хочу использовать операторы для этих векторов, поэтому я сделал класс» _, 'struct's может иметь оператор перегружает тоже. – emlai
@Grantly не должен быть там, я просто пытался показать, что ui пробовал разные способы, но не нашел его, дайте мне сек, я отредактирую его, чтобы не ошибиться u-zenith, и если бы я хотел использовать его таким образом с классом, мог бы я получаю помощь? Меня это очень интересует, я бы не просил об этом иначе. –
При отправке вопросов о коде, который дает вам ошибки, включите * все * вывода в вопрос, полный и неотредактированный. –