Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
kostia24
0 / 0 / 0
Регистрация: 30.09.2010
Сообщений: 7
#1

Ошибка в класе вектор - C++

10.06.2011, 20:04. Просмотров 355. Ответов 6
Метки нет (Все метки)

У меня есть Класс вектор и в нем видает 3 ошибки
error C2065: x: необъявленный идентификатор
error C2065: y: необъявленный идентификатор
error C2065: z: необъявленный идентификатор
В перегрузке оператора произведение

double operator*(vector a)
{
return a.x*x + a.y*y + a.z*z;
}
Не пойму в чем дело. С вычитанием и сложением проблем нету.

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
#include "vector.h"
 
vector::vector(double vX, double vY, double vZ) { x=vX; y=vY; z=vZ; }
vector::vector(){x=0; y=0; z=0;}
 
 
vector vector::operator+ (vector &b)
{vector temp;
temp.x =x+b.x;
temp.y =y+b.y;
temp.z =z+b.z;
 
return temp;
}
 
vector vector::operator- (vector &b)
{vector temp;
temp.x =x-b.x;
temp.y =y-b.y;
temp.z =z-b.z;
 
return temp;
}
 
double operator*(vector a)
{ 
 return a.x*x + a.y*y + a.z*z;
}
 
 
 
istream & operator>> (istream &in, vector &ob)
{
    in>> ob.x >> ob.y >> ob.z ;  
    return in;
}
ostream & operator<< (ostream &out, vector &b)
{
    out << b.x << b.y << b.z ;  
    return out;
}
 
 vector vector::operator= (vector &a)
 {x=a.x;
y=a.y;
z=a.z;
return *this;
}

Остальной код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#ifndef VECTOR_H
#define VECTOR_H
#include <iostream>
using namespace std;
class vector
{
 
 public:
      double x,y,z;
     
 vector(double vX, double vY, double vZ); 
 vector();
 ~vector ();
 vector operator= (vector & a);
 vector operator+ (vector & b); 
 vector operator- (vector & b); 
 double  operator*(vector a);
 friend istream & operator>>( istream &in, vector &ob);
 friend ostream & operator<<( ostream &out, vector &b);
};
#endif
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
#include <iostream>
#include "vector.h"
using namespace std;
int Menu ()
{ int number =0;
    cout<< " Выберете действие/n /t Что-бы сложить 2 вектора нажмите 1/n/t Что-бы  отнять 2 вектора нажмите 2/n/t Для получения скалярного произведения 2 векторов нажмите 3";
 cin>>number;
 return number;
}
int main ()
{
bool flag = true;
vector  vect1();
vector vect2();
vector  vect3;
 
cin>>vect1;
cin>>vect2;
 
double dob;
do
{
    switch (Menu())
    {   case 1 : vect3=vect2+vect1; cout<<vect3; break;
        case 2 : vect3=vect1-vect2; cout<<vect3; break;
        //case 3 : dob =vect2*vect1; cout<<dob; break;
        default :  
            {
                cout<< "Вы ввели неверное число"; 
                flag = false; break;
            }
    }
}
while (flag =true);
return 0;
}
Сделайте пожалуйста шаблона с класса.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2011, 20:04     Ошибка в класе вектор
Посмотрите здесь:

Динамический массив в класе - C++
Надо реализовать дин.массив в класе. Насколько знаю надо сделать через конструктор етот массив. Описал массив и фцию для заполнения его...

Динамический массив обьектов в класе - C++
Надо сделать так чтоб в класе был дин.массив обьектов другого класа. создаю я массив через конструктор с параметром(размерность). С...

Двумерный вектор, ошибка - C++
Здраствуйте! Почему я так не могу определить размер двумерного вектора? Подчеркивает красным 2 числа 9 и пишет ошибку Expected a type...

ошибка в программе с использванием вектор - C++
собрал программу по книге джеса либерти, но почему то дает ошибку. не могу понять причину. вот заголовончый файл: class Student { ...

Умножение матрицы на вектор. ошибка в вычислении - C++
Даны матрицы А и B nxn и вектора C и B nx1 Не правильно вычисляется произведение матрицы на вектор, помогите, в чем ошибка? 109 строка ...

Компиляция класса вектор. Ошибка: missing template arguments before «v» - C++
Собственно код: #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;vector&gt; #include &lt;string&gt; using namespace std; int...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
10.06.2011, 20:06     Ошибка в класе вектор #2
Вам нужно обьявить переменные x,y,z.
kostia24
0 / 0 / 0
Регистрация: 30.09.2010
Сообщений: 7
10.06.2011, 20:10  [ТС]     Ошибка в класе вектор #3
x,y,z это члены класса, они должны быть видны.
Для операции сложения переменные х, у, z видны.
Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
10.06.2011, 20:13     Ошибка в класе вектор #4
Но ошибки указывают на то, что они не обьявлены.
ЛеЖиК)
157 / 60 / 1
Регистрация: 29.04.2011
Сообщений: 631
10.06.2011, 20:18     Ошибка в класе вектор #5
врядли я прав(весь код не смотрел) ,но попробцуй так
C++
1
return a.x*this.x + a.y*this.y + a.z*this.z;
grizlik78
Эксперт С++
1908 / 1440 / 110
Регистрация: 29.05.2011
Сообщений: 2,995
10.06.2011, 20:19     Ошибка в класе вектор #6
vector:: в названии оператора отсутствует и описан он вне класса, значит это не член класса. если хотелось описать оператор класса, на это компилятору надо явно указать.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2011, 20:43     Ошибка в класе вектор
Еще ссылки по теме:

Ошибка при добавлении в вектор объекта типа thread - C++
функцию запускаю void Sorted_Char( char *Memory_Damp, int i_find, int size_arr, std::vector &lt; stream_g &gt;&amp;streams_f ) { for (int i...

Ошибка при выделении памяти под вектор методом resize - C++
Всем добрый день! Возник следующий вопрос: выделяю память для вектора с помощью метода resize(w*h). Затем мне нужно на место с определенным...

Вектор структур, в которых также векторы. Ошибка переполнения вектора - C++
Как реализовать такое дело: Есть структура MyStruct1 struct MyStruct1{ std::vector&lt;MyStruct2&gt; myStruct2; }; В которой...

Как завести вектор и структуру глобально в заголовочном файле или в чем ошибка - C++
Создал заголовочный файл Globals.h. В нем объявляется структура и вектор из структур. #ifndef _Globals_ #define _Globals_ #include...


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

Или воспользуйтесь поиском по форуму:
kostia24
0 / 0 / 0
Регистрация: 30.09.2010
Сообщений: 7
10.06.2011, 20:43  [ТС]     Ошибка в класе вектор #7
Цитата Сообщение от grizlik78 Посмотреть сообщение
vector:: в названии оператора отсутствует и описан он вне класса, значит это не член класса. если хотелось описать оператор класса, на это компилятору надо явно указать.
Спасибо, все элементарно.
Yandex
Объявления
10.06.2011, 20:43     Ошибка в класе вектор
Ответ Создать тему
Опции темы

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