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

Работа с классами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как создать шаблон класса одномерного динамического массива? http://www.cyberforum.ru/cpp-beginners/thread1076235.html
Нужно решить задачу(консольное приложение(совместимое с visual studio 2005)): Со-здать ша-блон кл-асса од-номерного ди-намического ма-ссива. Реализовать метод вывода массива на экран, метод...
C++ Описать функцию Exp1(x,eps) вещественного типа, находящую приближенное значение функции exp(x) помогите,пожалуйста, с задачей. знаю, что вопрос неоднократно поднимался, просматривал похожие темы, но многие дают приближенное значение с огромной погрешностью. Описать функцию Exp1(x,eps)... http://www.cyberforum.ru/cpp-beginners/thread1076231.html
C++ Даны две прямые в пространстве.Определить их взаимное расположение
Даны две прямые в пространстве.Определить их взаимное расположение. Решить предложенную задачу (использовать операторов: if, switch) Имеем: y = m1*x + b1 и y2 = m2*x + b2 Если m1 == m2 && b1...
C++ Указатели на функцию
1. arcsin(x^3) bool arcs(double *x) { if (*x**x**x<=1 && *x**x**x>=-1) {*x=asin(*x**x**x); return true;} } правильно я написал или нет? 2.lnlg(x) - ? помогите написать функцию.
C++ Найти в предложении количество слов, после которых стоит несколько пробелов и удалить их http://www.cyberforum.ru/cpp-beginners/thread1076211.html
Ребята помогите я на экзамене) Все очень печально)
C++ Как присвоить ячейке число в матрице Есть матрица 3 на 3, как сделать чтобы каждой ячейке (всего получается 9) присвоить свое значение, чтобы в дальнейшем обращаться к ним по номерам...подкиньте идейку или направьте в нужное русло....... подробнее

Показать сообщение отдельно
Vlad708
4 / 4 / 0
Регистрация: 04.11.2012
Сообщений: 72
20.01.2014, 11:28  [ТС]
Цитата Сообщение от 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
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru