Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Whitemorn
2 / 2 / 2
Регистрация: 06.10.2016
Сообщений: 39
Завершенные тесты: 1
1

Что обозначают эти ошибки?

23.11.2016, 21:49. Просмотров 164. Ответов 9
Метки нет (Все метки)

Файл main()
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
#include "stdafx.h"
#include "vector2.h"
#include <iostream>
 
int main()
{
    
    vector2 Obj(2500,50);
    vector2 Pos(10, 2);
    double startSpeed = 700;
    vector2 gravity(0,-10);
    vector2 dist = Obj - Pos;
    double Path = dist.Len();
    double absTime = Path/startSpeed;
    vector2 abc = dist.Norm();
    vector2 Speed = abc * startSpeed;
    double iTime = absTime;
 
    for(int i = 1; i <= iTime; i++)
    {
        Pos += Speed;
        Speed += gravity;
    }
    return 0;
}



Файл vector2.ccp
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
73
74
75
76
77
78
79
80
81
#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;
}
 
double vector2::operator*( vector2& vec )
{
    double result;
    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;
}
 
vector2 vector2::operator-( vector2& vec )
{
    vector2 result(this->x - vec.x, this->y - vec.y);
    return result;
}
Ругается такими ошибками:
1>c:\users\ya-an\desktop\*\c++\vectors — копия\vectors\vectors.cpp(16) : error C2679: бинарный '*': не найден оператор, принимающий правый операнд типа 'double' (или приемлемое преобразование отсутствует)
1> c:\users\ya-an\desktop\*\c++\vectors — копия\vectors\vector2.h(14): может быть 'double vector2::operator *(vector2 &)'
1> при попытке сопоставить список аргументов '(vector2, double)'
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2016, 21:49
Ответы с готовыми решениями:

Разъясните что обозначают эти ошибки?
Функция main() #include &quot;stdafx.h&quot; #include &quot;vector2.h&quot; int main() {...

Подскажите что обозначают выделенные строки.
Что обозначают 10,11 и 12 строки??? Заране спасибо. Я знаю что printf -вывод...

Найти ошибки в коде и исправить эти ошибки (Наследование)
Вот в общем 3 файла, изучаю наследование на примере односвязного и двусвязного...

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

Найти ошибки в коде и исправить эти ошибки
Есть у меня вот такой код: #include &lt;iostream&gt; using namespace std; ...

9
nmcf
6514 / 5743 / 2617
Регистрация: 14.04.2014
Сообщений: 24,494
23.11.2016, 22:04 2
Где ещё один файл?
0
Whitemorn
2 / 2 / 2
Регистрация: 06.10.2016
Сообщений: 39
Завершенные тесты: 1
23.11.2016, 22:04  [ТС] 3
Файл vector2.h

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#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);
    double operator* (vector2& vec);
    void operator*= (float val);
    vector2 operator- (vector2& vec);
    float Len();
    vector2 Norm();
protected:
    float x;
    float y;
};
0
nmcf
6514 / 5743 / 2617
Регистрация: 14.04.2014
Сообщений: 24,494
23.11.2016, 22:06 4
vectors.cpp, строка 16. Что там?
0
Whitemorn
2 / 2 / 2
Регистрация: 06.10.2016
Сообщений: 39
Завершенные тесты: 1
23.11.2016, 22:11  [ТС] 5
В 16:
C++
1
vector2 Speed = abc * startSpeed;
А в 14:
C++
1
double operator* (vector2& vec);
0
nd2
2838 / 2405 / 1057
Регистрация: 29.01.2016
Сообщений: 8,046
23.11.2016, 22:32 6
Типы abc и startSpeed?
0
Whitemorn
2 / 2 / 2
Регистрация: 06.10.2016
Сообщений: 39
Завершенные тесты: 1
23.11.2016, 22:41  [ТС] 7
StartSpeed и abc это переменные
StartSpeed - double
abc - vector

Добавлено через 2 минуты
Т.е. с startSpeed все понятно
abc - сделал так чтобы не писать
C++
1
vector2 Speed = dist.Norm() * startSpeed;
0
nd2
2838 / 2405 / 1057
Регистрация: 29.01.2016
Сообщений: 8,046
23.11.2016, 22:54 8
Цитата Сообщение от Whitemorn Посмотреть сообщение
бинарный '*': не найден оператор, принимающий правый операнд типа 'double' (или приемлемое преобразование отсутствует)
Нет у тебя в классе оператора умножения с параметром типа double.
0
Whitemorn
2 / 2 / 2
Регистрация: 06.10.2016
Сообщений: 39
Завершенные тесты: 1
23.11.2016, 22:57  [ТС] 9
Цитата Сообщение от nd2 Посмотреть сообщение
Нет у тебя в классе оператора умножения с параметром типа double.
Это не то?
C++
1
double operator* (vector2& vec);
0
nd2
2838 / 2405 / 1057
Регистрация: 29.01.2016
Сообщений: 8,046
23.11.2016, 23:10 10
Цитата Сообщение от Whitemorn Посмотреть сообщение
Это не то?
Нет, это для двух векторов.
0
23.11.2016, 23:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2016, 23:10

Почему выдает эти ошибки?
error: invalid types ‘float ’ for array subscript error: size of array ‘arr’...

Как исправить эти ошибки
как исправить ети ошибки Код: #include&lt;iostream.h&gt; #include&lt;conio.h&gt;...

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


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

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

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