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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Даны два массива из указателей на строки http://www.cyberforum.ru/cpp-beginners/thread317510.html
Пожалуйста помогите!! Даны два массива из указателей на строки, последний элемент каждого массива равен NULL. Разработать функцию, получающую эти массивы и выводящую все строки, встречающиеся в обоих массивах и количество таких строк. Не хорошо влезать в чужие темы со своими задачами. Надо уважать других участников форума.
C++ Ошибка в Классе связного списка Пишу связный список в виде класса, но вот только что заметил, из за удаления элемента ( при его добавлении выделяю под него память new-шкой, а удаляю соответсвенно delete ) программа экстренно закрывается, пишу под Win Xp в среде Dev-C/C++, метод удаление под названием Del, освобождение памяти закомментировал, в чём может быть дело ? :) #include <stdio.h> class KList { private : ... http://www.cyberforum.ru/cpp-beginners/thread317495.html
C++ структуры
помогите плиз: Таблица содержит геометрические точки, заданные в полярных координа- тах (a, R) . Определить прямоугольник в плоскости Oxy, в который попадают все указанные точки x = R cos a, y = R sin a . Стороны прямоугольника выбрать ориентированными вдоль координатных осей
C++ Используя разложение cos(x) в ряд. Вычислить cos(0.5)
Знаю конечно, что наглость, но пожалуйста подскажите как это разложить? Так же в ряд Тейлора или нет?
C++ вопрос по using namespace http://www.cyberforum.ru/cpp-beginners/thread317431.html
добрый вечер) писала программу, сортирующую слова по частоте их встречаемости //Объявите класс с именем text. Объявите функцию show(), функция сортирования текста по возрастанию. //Текст можно вставить любой, а сортировать по количеству букв в слове от меньшего к большему ну или на оборот. #include <ctype> #include <fstream>
C++ Массивы и функции Всем привет, вот такая задачка: Найти минимальное элемент двумерного массива, с помощью функции. Выдает ошибку: "error C2664: poisk: невозможно преобразовать параметр 1 из 'int ' в 'int **'" Вод код: void poisk(int **matr) {int min=matr,nmin; for (int i=0;i<2;i++) for (int j=0;j<2;j++) {if (matr<min) min=matr;}} подробнее

Показать сообщение отдельно
kostia24
0 / 0 / 0
Регистрация: 30.09.2010
Сообщений: 7

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

10.06.2011, 20:04. Просмотров 350. Ответов 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;
}
Сделайте пожалуйста шаблона с класса.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru