我有一个理论问题而不是错误报告.
我是一名新手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:
};
Run Code Online (Sandbox Code Playgroud)
和连接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()
{
}
Run Code Online (Sandbox Code Playgroud)
什么是决定哪些包括去哪里的好方法?到目前为止,我一直在使用"无论什么工作"的方法,但我发现它有点不专业.
现在即使你可以说我的代码有X语法错误和设计缺陷,请这样做,但重点我会欣赏有关使用.h VS .cpp文件的信息.
为什么还有这样的设计呢?在制作任何基于OOP的C++程序时,总是会轻易踩着什么是陷阱和陷阱?
是什么引发了这个问题,因为我想通知读者头文件中存在控制器中存在的对象,但是如果不将它们设置为静态,则分配这些未初始化的对象似乎是不可能的.
注意:我源于C# - > C++,可能有助于了解.这就是我对代码的看法.
提前谢谢您的努力!
编辑:26/08/2010 18:16
所以构建时间是良好包含的本质.还有更多需要谨慎吗?
以下编辑更新!!! 感谢您的帮助,请务必指出所有错误,我不在乎是否听起来粗鲁或卑鄙,或者其他什么,emo垃圾.直接把它给我,这样我就可以理解出了什么问题.
嗨,大家好!
我是一名新手C++程序员,试图学习并获得一些C++的IRL exp.
我在VC++(vs2008)编译器中尝试以下内容:
typedef unsigned short USHORT;
class Grid
{
...
public:
Grid()
{
Tile[36]* tileList_ptr;
}
...
};
Run Code Online (Sandbox Code Playgroud)
从本质上讲,我想放入36个瓷砖,将它们撞到一个漂亮整齐的数组中,以便在8x8的游戏区域中大小不变.像棋盘一样.用指针引用它们,如果需要,在相关的cpp文件中摆弄它们.
如果你现在没有笑到这个尝试,那么我可能会出现语法错误,而不是主要的设计缺陷:P
任何帮助将非常感激!
提前致谢
编辑24/08/2010 13:49(开始时间)
我的代码现在如下例子:
Grid Header文件Grid.h:
#include "Tile.h"
class Grid
{
//no more typedef used
public:
Tile grid[8][8];
private:
unsigned short selectedItemIndexValue;
public:
Grid()
{
Initialize();
}
~Grid(){}
void Update();
void FinalizeMove(unsigned short index);
void Draw();
private:
void Initialize(); //Initializes members
};
Run Code Online (Sandbox Code Playgroud)
Grid.cpp文件:
#include "stdafx.h"
#include "Grid.h"
//Not tile , that used to give me …Run Code Online (Sandbox Code Playgroud) 我有另一个理论问题,因为标题建议它是评估代码的构建.基本上我在考虑到处使用这个模板.
我使用的是VC++ VS2008(包括所有内容)
Stapel.h
class Stapel
{
public:
//local vars
int x;
private:
public:
Stapel();
Stapel(int value);
~Stapel(){}
//getters setters
void set_x(int value)
{
x = value;
}
int get_x(int value)
{
x = value;
}
void CleanUp();
private:
};
Run Code Online (Sandbox Code Playgroud)
Stapel.cpp
#include "Stapel.h"
Stapel::Stapel()
{
}
Stapel::Stapel(int value)
{
set_x(value);
}
void Stapel::CleanUp()
{
//CleanUpCalls
}
Run Code Online (Sandbox Code Playgroud)
这里的重点是清理方法,基本上我想把这个方法放在我所有的文件中,只需要让它在需要时进行删除调用,以确保它在一个地方,我可以防止删除周围的飞行,作为一个新秀,即使我知道可能不是你想乱搞的东西,也不是一个草率的堆.
这个版本怎么样?
好坏 ?为什么?
那么使用析构函数来完成这些任务呢?