У меня есть теоретический вопрос, а не отчет об ошибке.
Я новичок в программировании на C ++, пытаюсь его устранить
Использование компилятора VC ++ VS2008
Я часто задаюсь вопросом, ПОЧЕМУ я хочу предпринять некоторые действия в заголовочных файлах.
Например, посмотрите на этот блок кода:
#include "DrawScene.h"
#include "Camera.h"
#include "Player.h"
#include "Grid.h"
#include "InputHandler.h"
#include "GameState.h"
class Controller
{
public:
private:
public:
Controller();
~Controller(){}
void Update();
private:
};
И подключенный файл CPP, controller.cppнаряду с этим
#include "stdafx.h"
#include "glut.h"
#include "Controller.h"
#include <iostream>
Grid* grid_ptr = new Grid();
InputHandler* inputHandler_ptr = new InputHandler();
DrawScene* drawScene_ptr = new DrawScene();
GameState* gameState_ptr = new GameState();
Controller::Controller()
{
}
void Controller::Update()
{
}
Какой хороший способ решить, что включает в себя куда?До сих пор я использовал метод «все работает», но я нахожу его несколько непрофессиональным.
Теперь, даже если вы можете сказать, что в моем коде есть ошибки синтаксиса X и недостатки в дизайне, пожалуйста, сделайте это, но я хотел бы знать, что информация об использовании файлов .h VS .cpp остается.
Почему вообще такой дизайн?И какие ямы и ловушки всегда должны быть легкими при создании любой программы на С ++, основанной на ООП?
Что вызвало у меня этот вопрос, кстати, было то, что я хотел уведомить читателя о заголовочном файле, который там будетбыть объектами, хранящимися в контроллере, но присвоение этих неинициализированных объектов казалось невозможным, не делая их статичными.
Примечание: я проистекаю из C # -> C ++, может помочь узнать.Это мой взгляд на код на данный момент.
Заранее благодарим вас за ваши усилия!
РЕДАКТИРОВАТЬ: 26/08/2010 18: 16
Итак, сборкавремя - это сущность добраНужно ли быть осторожнее?