Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема с перегрузкой operator+=

64K
09 августа 2011 года
napalm256
13 / / 15.02.2011
Я не новичок но тем немение возникли непонятки, я немогу понять чтоже я упустил.
Если убрать (float)t из velociti += accseleration * t; то всьо гуд, но operator*(float) возвращает Vector2f.

Код:
class Vector2f
{
public:
    float x,y;

    Vector2f &operator+=(Vector2f&);
    Vector2f operator*(float);
};

Vector2f &Vector2f::operator+=(Vector2f &v2)
{
   x += v2.x;
   y += v2.y;
   return *this;
}

Vector2f Vector2f::operator*(float v2)
{
    Vector2f v3;
    v3.x = x * v2;
    v3.y = y * v2;
    return v3;
}

class Bullet
{
public:
    Vector2f position,velociti,accseleration;
    void Move(float);
};
void Bullet::Move(float t)
{
    velociti += accseleration * t; // error: no match for 'operator+=' in '((Bullet*)this)->Bullet::velociti += ((Bullet*)this)->Bullet::accseleration.Vector2f::operator*(t)'
    position += velociti * t;
}
277
09 августа 2011 года
arrjj
1.7K / / 26.01.2011
Код:
class Vector2f
{
public:
    float x,y;

    Vector2f &operator+=(const Vector2f&);
    Vector2f operator*(float);
};

Vector2f &Vector2f::operator+=(const Vector2f &v2)
{
   x += v2.x;
   y += v2.y;
   return *this;
}

Vector2f Vector2f::operator*(float v2)
{
    Vector2f v3;
    v3.x = x * v2;
    v3.y = y * v2;
    return v3;
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог