Rookie C++ Programmer ici encoreTableau multidimensionnel d'objet en C++, je ne peux pas l'initialiser!
J'utilise VC++ VS2008 et tente de créer un tableau de tableaux. Tous les objets que je souhaite stocker, je veux mettre sur le tas.
Dans les tableaux, tout est juste des pointeurs.
Voici quelques code:
Grid.h
#include "Tile.h"
class Grid
{
public:
Tile* grid_ptr[8][8];
...
...
};
Grid.cpp
#include "stdafx.h"
#include "Grid.h"
...
...
void Grid::Initialize()
{
for(int i = 0; i < 8; i++)
{
Grid::grid_ptr[i][0] = new Tile::Tile(10,10);
for (int j = 0; j < 8; j++)
{
Grid::grid_ptr[i][j] = new Tile::Tile(10,10);
}
}
}
...
...
}
Tout fonctionne très bien, y compris la construction de tuiles. Il semble comme une erreur de syntaxe car le compilateur me donne cette
Erreur 1 erreur C2061: erreur de syntaxe: identificateur « {cteur} »
Erreur 2 Erreur C2061: erreur de syntaxe: identificateur « {cteur} »
Tout le temps la même histoire. Tout mon travail s'est enlisé et malheureusement j'apprécierais une solution à ce problème.
En bref. Comment créer correctement un tableau de tableaux de taille 8x8 rempli de pointeurs référençant leurs objets de pavé respectifs?
Est-ce encore possible ou intelligent d'utiliser une telle mémoire?
que j'ai lu beaucoup d'exemples à ce sujet, et que cela a été un succès avec des entiers ou d'autres types de données. Cela est cependant veut pas simplement que je veux alloué
Tile.h ici et Tile.cpp ci-dessous
class Tile
{
public:
private:
enum TileOccupation
{
EmptyTile = 0,
WhiteSphere = 1,
BlackSphere = 2
};
unsigned short horizontalDimensions;
unsigned short verticalDimensions;
public:
Tile();
Tile(unsigned short horizontalDimensions, unsigned short verticalDimensions);
~Tile();
void Update();
void Draw();
};
> Tile.cpp
#include "stdafx.h"
#include "Tile.h"
Tile::Tile()
{
}
Tile::Tile(unsigned short horizontalDimensions, unsigned short verticalDimensions)
{
}
void Tile::Update()
{
}
void Tile::Draw()
{
}
nouvelle tuile :: Carreaux (10,10) -> nouvelle tuile (10,10); – DumbCoder
Pourriez-vous nous montrer le constructeur 'Tile'? – Default
Votre code 'Grid :: Initialize' contient huit objets' Tile' tels quels: 'grid_ptr [i] [0]' obtient un nouvel objet deux fois. Supprimez simplement la ligne 'Grid :: grid_ptr [i] [0] = new Tile :: Tile (10,10);' pour corriger cela. –