4 / 4 / 1
Регистрация: 04.11.2012
Сообщений: 72
1

Работа с классами

20.01.2014, 10:42. Показов 675. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется заголовочный файл
В нем создаю два класса Vector и MyCamera.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Vector {
  public:
  float x,y,z;
};
//----------------------------------------------------------------
 
class MyCamera {
  public:
    Vector m_vPosition; // Позиция камеры
    Vector m_vView;     // Направление камеры
    Vector m_vUpVector; // Вертикальный вектор
    MyCamera();
    void PositionCamera(float positionX, float positionY, float positionZ,
                        float viewX, float viewY, float viewZ,
                        float upVectorX, float upVectorY, float upVectorZ);
    void MoveCamera(float speed);
};
 
extern MyCamera *d_Camera;
В классе MyCamera объявляю объекты класса Vector.
Но выдает вот такую ошибку: E2303 Type name expected
Скажите, что я сделал неправильно?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.01.2014, 10:42
Ответы с готовыми решениями:

Работа с классами
Помогите написать програмку задание следующее: Создать базовый класс «Грузоперевозчик» и...

Работа с классами в С++
Доброго всем дня.У меня возникла проблема с освоением языка C++ , сейчас пишу курсовую на этом...

Работа с классами.
Или это задача такая лёгкая (на экзамене будет), или я чего-то не понимаю. В классе Pair может...

Работа с классами
Помогите пожалуйста написать программу. Задан массив действительных чисел. Найти количество...

8
101 / 102 / 31
Регистрация: 15.01.2014
Сообщений: 283
20.01.2014, 10:48 2
Цитата Сообщение от Vlad708 Посмотреть сообщение
Но выдает вот такую ошибку: E2303 Type name expected
Скажите, что я сделал неправильно?
Не правильно расположены заготовки класса или же описания не хватает к методам, или надо разделить на h и cpp файлы ваш класс, не могу сказать точно, так как не вижу всего кода

Судя по тому что у вас написано - не хватает конструктора для Vector
0
Эксперт С++
4982 / 3089 / 456
Регистрация: 10.11.2010
Сообщений: 11,165
Записей в блоге: 10
20.01.2014, 10:55 3
В какой строке ругается? Я не вижу тут ошибок.
0
4 / 4 / 1
Регистрация: 04.11.2012
Сообщений: 72
20.01.2014, 11:28  [ТС] 4
Цитата Сообщение от Enotniy Посмотреть сообщение
Не правильно расположены заготовки класса или же описания не хватает к методам, или надо разделить на h и cpp файлы ваш класс, не могу сказать точно, так как не вижу всего кода

Судя по тому что у вас написано - не хватает конструктора для Vector
Вот заголовочный файл:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Vector {
  public:
  float x,y,z;
};
//----------------------------------------------------------------
 
class MyCamera {
  public:
    Vector m_vPosition; // Позиция камеры
    Vector m_vView;     // Направление камеры
    Vector m_vUpVector; // Вертикальный вектор
    MyCamera();
    // Изменяется позиция, направление камеры
    void PositionCamera(float positionX, float positionY, float positionZ,
                        float viewX, float viewY, float viewZ,
                        float upVectorX, float upVectorY, float upVectorZ);
    // Движение камеры вперёд-назад
    void MoveCamera(float speed);
};
 
extern MyCamera *d_Camera;

Вот .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
MyCamera::MyCamera() {
  // Инициализация вектора позиции в нулевые координаты
  Vector vZero = {0.0f, 0.0f, 0.0f};
  Vector vView = {0.0f, 1.0f, 0.5f}; // Иниц. вектора взгляда
  Vector vUp = {0.0f, 0.0f, 1.0f}; // Инициальзация верт. вектора
 
  m_vPosition = vZero;
  m_vView = vView;
  m_vUpVector = vUp;
}
 
void MyCamera::PositionCamera(float positionX, float positionY, float positionZ,
                              float viewX, float viewY, float viewZ,
                              float upVectorX, float upVectorY, float upVectorZ) {
  Vector vPosition = {positionX, positionY, positionZ};
  Vector vView = {viewX, viewY, viewZ};
  Vector vUpVector = {upVectorX, upVectorY, upVectorZ};
 
  m_vPosition = vPosition;
  m_vView = vView;
  m_vUpVector = vUpVector;
}
 
//--------------------------------------------------------------------
 
void MyCamera::MoveCamera(float speed) {
  Vector vVector = {0};
 
  vVector.x = m_vView.x - m_vPosition.X;
  vVector.y = m_vView.y - m_vPosition.Y;
  vVector.Z = m_vView.Z - m_vPosition.Z;
 
  m_vPosition.x += vVector.x * speed;
  m_vPosition.z += vVector.z * speed;
  m_vView.x += vVector.x * speed;
  m_vView.z += vVector.z * speed;
}
Добавлено через 2 минуты
Цитата Сообщение от castaway Посмотреть сообщение
В какой строке ругается? Я не вижу тут ошибок.
ругается на вот эти объявления:

Vector m_vPosition; // Позиция камеры
Vector m_vView; // Направление камеры
Vector m_vUpVector; // Вертикальный вектор
0
46 / 15 / 4
Регистрация: 13.03.2013
Сообщений: 302
20.01.2014, 11:56 5
Vlad708, вам же Enotniy сказал: где конструкторы для Вектор?
0
4 / 4 / 1
Регистрация: 04.11.2012
Сообщений: 72
20.01.2014, 12:07  [ТС] 6
Цитата Сообщение от Nullik Посмотреть сообщение
Vlad708, вам же Enotniy сказал: где конструкторы для Вектор?
Ну допустим я сделал конструктор класса vector

C++
1
2
3
4
5
Vector::Vector() {
  x = 0;
  y = 0;
  z = 0;
}
и что дальше, как мне указать это в классе MyCamera?
0
46 / 15 / 4
Регистрация: 13.03.2013
Сообщений: 302
20.01.2014, 12:18 7
Vlad708, так указывать не нужно, вы знаете как работают конструкторы и деструкторы?
0
4 / 4 / 1
Регистрация: 04.11.2012
Сообщений: 72
20.01.2014, 12:32  [ТС] 8
Цитата Сообщение от Nullik Посмотреть сообщение
Vlad708, так указывать не нужно, вы знаете как работают конструкторы и деструкторы?
Дело в том, что я делаю как написано в уроке... вот ссылка: http://masandilov.ru/opengl/camera

И не понимаю, что писать в конструкторе класса, который является вспомогательным для класса MyCamera.
0
46 / 15 / 4
Регистрация: 13.03.2013
Сообщений: 302
20.01.2014, 12:54 9
может быть надо переименовать вектор, т.к. он уже есть в c++ CLI ?
те.е, назовите его MyVector.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.01.2014, 12:54
Помогаю со студенческими работами здесь

Работа с классами
Помогите плз Определите значение переменных а, х, с после выполнения следующих команд: class...

Работа с классами
Привет!!! Есть задачка: "Определите класс Oper, содержащий идентификатор типа ld (string или...

Работа с классами
Почему может вывестись здесь ошибка? #include <iostream> #include <stdlib.h> #include <time.h>...

Работа С Классами
Привет Всем , Перехожу С делфи ))) Вот никак не пойму Вот Эту хрень в нутри класса Обрывок из...

Работа с классами
плиз помогите решить нужно написать функции которыи будут выполнять сложение, вычитание,...

Работа с классами
Задача:найти сумму всех отрицательных элементов матрицы и записать в вектор. For (i=0;i<=N;i++)...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru