Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Whitemorn
2 / 2 / 1
Регистрация: 06.10.2016
Сообщений: 36
Завершенные тесты: 1
#1

Разъясните что обозначают эти ошибки? - C++

22.11.2016, 19:55. Просмотров 116. Ответов 4
Метки нет (Все метки)

Функция main()
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdafx.h"
#include "vector2.h"
 
int main()
{
    vector2 Obj(2500,50);
    vector2 Pos(10, 2);
    float startSpeed = 700;
    vector2 gravity(0,-9.8);
    vector2 dist = Obj - Pos;
    float Path = dist.Len();
    float absTime = Path/startSpeed;
    vector2 Speed = dist.Norm() * startSpeed;
    int iTime = absTime;
 
    for(int i = 1; i <= iTime; i++)
    {
        Pos += Speed;
        Speed += gravity;
    }
    return 0;
}
Выдает такие ошибки:
c:\users\ya-an\desktop\*\c++\vectors\vectors\vectors.cpp(12) : warning C4305: аргумент: усечение из 'double' к 'float'
1>c:\users\ya-an\desktop\*\c++\vectors\vectors\vectors.cpp(13) : error C2676: бинарный '-': 'vector2' не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору
1>c:\users\ya-an\desktop\*\c++\vectors\vectors\vectors.cpp(16) : error C2679: бинарный '*': не найден оператор, принимающий правый операнд типа 'float' (или приемлемое преобразование отсутствует)
1> c:\users\ya-an\desktop\*\c++\vectors\vectors\vector2.h(14): может быть 'vector2 vector2::operator *(vector2 &)'
1> при попытке сопоставить список аргументов '(vector2, float)'
1>c:\users\ya-an\desktop\*\c++\vectors\vectors\vectors.cpp(17) : warning C4244: инициализация: преобразование 'float' в 'int', возможна потеря данных


Файл vector2.h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#pragma once
#include <math.h>
class vector2
{
public:
    vector2(void);
    ~vector2(void);
    void Init(float _x, float _y);
    vector2(float _x, float _y);
    bool operator== (const vector2& val) const;
    vector2 operator+ (vector2& vec);
    void operator+= (vector2& vec);
    void operator-= (vector2& vec);
    vector2 operator*(vector2& vec);
    void operator*= (float val);
    float Len();
    vector2 Norm();
protected:
    float x;
    float y;
};

Файл vector2.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include "StdAfx.h"
#include "vector2.h"
 
vector2::vector2(void)
{
    x = 0;
    y = 0;
}
 
vector2::vector2( float _x, float _y )
{
    Init(_x, _y);
}
 
vector2::~vector2(void)
{
}
 
void vector2::Init( float _x, float _y )
{
    x = _x;
    y = _y;
}
 
bool vector2::operator==( const vector2& val ) const
{
    return true;
}
 
vector2 vector2::operator+( vector2& vec )
{
    vector2 result(this->x+vec.x, this->y + vec.y);
    return result;
 
}
 
void vector2::operator+=( vector2& vec )
{
    this->x = this->x + vec.x;
    this->y = this->y + vec.y;
}
 
float vector2::Len()
{
    return sqrt(x*x + y*y);
}
 
vector2 vector2::Norm()
{
    vector2 result;
    result.x = this->x / this->Len();
    result.y = this->y /this->Len();
    return result;
}
 
void vector2::operator-=( vector2& vec )
{
    this->x = this->x - vec.x;
    this->y = this->y - vec.y;
}
 
vector2 vector2::operator*( vector2& vec )
{
    vector2 result(this->x * vec.x, this->y * vec.y);
    return result;
}
 
void vector2::operator*=( float val )
{
    this->x = this->x * val;
    this->y = this->y * val;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2016, 19:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разъясните что обозначают эти ошибки? (C++):

Что обозначают эти ошибки? - C++
Файл main() #include &quot;stdafx.h&quot; #include &quot;vector2.h&quot; #include &lt;iostream&gt; int main() { vector2 Obj(2500,50); vector2...

Разъясните ошибки при считывании файла - C++
не пойму что от меня требуется тут) пол года изучаем язык) часть ошибок исправил но при считывании с файла лепит нарушение прав доступа ...

Подскажите что обозначают выделенные строки. - C++
Что обозначают 10,11 и 12 строки??? Заране спасибо. Я знаю что printf -вывод параметров на дисплей, а \n -управляющая последовательность....

Найти ошибки в коде и исправить эти ошибки (Наследование) - C++
Вот в общем 3 файла, изучаю наследование на примере односвязного и двусвязного списков: list.h (inline) #pragma once class list...

Найти ошибки в коде и исправить эти ошибки - C++ - C++
Судя по вываливающейся ошибки, идет двойное освобождение памяти. У самого не получается отловить откуда. A.h #pragma once ...

Найти ошибки в коде и исправить эти ошибки - C++
Есть у меня вот такой код: #include &lt;iostream&gt; using namespace std; class A{ private: int* a; size_t size_; ...

4
nonedark2008
931 / 670 / 147
Регистрация: 28.07.2012
Сообщений: 1,828
22.11.2016, 20:03 #2
Whitemorn, у тебя не перегружены операторы - и *.
1
Ferrari F1
619 / 513 / 101
Регистрация: 27.01.2015
Сообщений: 2,979
Записей в блоге: 1
Завершенные тесты: 1
22.11.2016, 20:03 #3
Цитата Сообщение от Whitemorn
Разъясните что обозначают эти ошибки?
Это ошибки молодости
0
Whitemorn
2 / 2 / 1
Регистрация: 06.10.2016
Сообщений: 36
Завершенные тесты: 1
22.11.2016, 20:08  [ТС] #4
Не поможете как реализовать их?
Цитата Сообщение от nonedark2008 Посмотреть сообщение
у тебя не перегружены операторы - и *
0
nonedark2008
931 / 670 / 147
Регистрация: 28.07.2012
Сообщений: 1,828
22.11.2016, 20:14 #5
Whitemorn,
C++
1
2
3
4
5
6
7
vector2 operator -(const vector &v) {
    return vector2(*this) -= v;
}
 
vector2 operator *(const vector &v) {
    return vector2(*this) *= v;
}
Думаю, что так. Но удивительно, что ты сам не смог разобраться, у тебя же в коде все есть в качестве примера...
1
22.11.2016, 20:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2016, 20:14
Привет! Вот еще темы с ответами:

Разъясните что тут написано, ну пожалуйста - C++
Задали лабу - перевод рисунка с форматом BMP из цветного в ч/б изображение, нашёл структурку, но не могу разобраться что она делает......

Как исправить эти ошибки - C++
как исправить ети ошибки Код: #include&lt;iostream.h&gt; #include&lt;conio.h&gt; #include&lt;string.h&gt; #define n 10 struct Krainy { ...

Найти причины возникновения ошибок и исправить эти ошибки - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;cstdlib&gt; void sum(); int main() {

Найти причины возникновения ошибок и исправить эти ошибки - C++
Доброго времени суток, Уважаемые! Есть данный код: #include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;sstream&gt; #include &lt;string&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru