Ссылка на указатель на структуру, существующую внутри объекта внутри массива [закрыто]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Ссылка на указатель на структуру, существующую внутри объекта внутри массива [закрыто]

Сообщение Anonymous »

Я пытаюсь создать сетку плиток (для подземелья). Данная плитка может быть одним из нескольких типов: пол, стена, пустая ... или дверь. Оффер, я предполагаю, что данная плитка может иметь (еще не поняла) вероятность того, что это дверь 1,5%. и т. Д.)struct Door {
char facingDir;
int doorState;
// bunch of other stuff
}

class Tile {
public:
int x;
int y;
char[1] tileType;
Door* doorHere;
// bunch of other stuff
};

class Dungeon {
public:
Tile[200][200] tiles;

void drawDungeon()
{
//do a bunch of maze-building logic, setting the tileType of each tile
//while looping through the tiles using i, j as integer iterators:
if (tileType == 'D')
{
tiles[j]->doorHere = std::make_unique('N', 4, /*...*/ )
}
}
};

Dungeon myDungeon;

void Main()
{

//.....
char something = myDungeon.tiles[j]->doorHere.facingDir;
}
< /code>
Мои вопросы: < /p>
  • Это правильный способ сделать это? Объявите дополнительный объект в сетке объектов, то есть? Это не занимает больше памяти, чем это реально? «->» вообще требуется (это своего рода боль для печати неоднократно, поэтому я бы предпочел использовать колоны и периоды, если она все одинаково. Это также более интуитивно понятно для меня, выходя из VB и C#, как и я). < /Li>
    Нужно ли мне делать что-то особенное в деструкторе плитки, чтобы убедиться, что любые дверные объекты также являются правильно уничтожены? Допустим, вместо того, чтобы быть статичными, плитки (в подземелье) использовали Malloc. Когда я освобождаю массив плиток в деструкторе Dungeon, это просто позаботится обо всем, включая все плитки и двери внутри него? Есть ли просто указатель ни на что? И, просто из любопытства, как бы я проверил это, из функций подземелья или даже из внешней функции?


Подробнее здесь: https://stackoverflow.com/questions/797 ... e-an-array
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»