검색을 위해 무엇을 검색해야할지 잘 모르겠습니다. 내 답변을 찾으려면 관련 기사로 리디렉션 해주십시오. 미리 사과드립니다.C++의 메소드에서 객체에 대한 포인터의 개인 배열에 액세스
저는 C++을 처음 접했고 3x3 CLI 타일 게임을 만들려고합니다. TileGame 생성자에서 개인 배열의 포인터에 Tile 개체를 할당하고 유효한 메모리 주소를 가지고 있는지 확인할 수 있습니다. 내 문제는 해당 데이터에 액세스하려고 시도하는 메서드를 실행할 때입니다. 배열의 첫 번째 요소에는 값이 있지만 다른 요소는 매우 이상하게 보입니다. 나는 그것이 작은 무엇인가라고 확신한다. 그러나 나는 잘못하고있는 것에 관해서 손실에있다. 또한 접근 자 메서드를 만들려고 시도했지만 복잡한 것만 보였다. 나는이 시점시에 도착
From TileGame():
0x7f9349c03aa0
0x7f9349c03ab0
0x7f9349c03ac0
0x7f9349c03ad0
0x7f9349c03ae0
0x7f9349c03af0
0x7f9349c03b00
0x7f9349c03b10
From shuffle():
0x7fff9502752c
0x100
0
0
0
0
0
0
: 이것은 컴파일해야
#include <iostream>
using namespace std;
class Tile
{
private:
int position;
int tileID;
public:
Tile(int, int);
};
// tile constructor
Tile::Tile(int p, int id) : position(p), tileID(id) {}
class TileGame
{
private:
const int MAX_TILES;
Tile* tiles[];
public:
TileGame();
void shuffle();
};
// game constructor
TileGame::TileGame() : MAX_TILES(8)
{
Tile* tiles[MAX_TILES];
for (int i = 0; i < MAX_TILES; i++)
{
tiles[i] = new tile(i, i);
}
// spit out the addresses for each
cout << endl << "From TileGame(): " << endl;
for (int i = 0; i < MAX_TILES; i++)
{
cout << tiles[i] << endl;
}
}
void TileGame::shuffle()
{
// spit out the addresses for each
cout << endl << "From TileGame(): " << endl;
for (int i = 0; i < MAX_TILES; i++)
{
cout << tiles[i] << endl; // <-- This seems to be the problem
}
}
int main()
{
TileGame* game = new TileGame();
game->shuffle();
}
(. 나는 그것을 다시 입력했다, 그래서 내가 실수를하지 않은 희망) 내가 얻을 출력은 뭔가처럼
tiles[]
값에 액세스하여 계속 오류가 발생했습니다. 생각?
2 차원 배열에 8 크기를 할당하는 경우 클래스에 선언하지 않는 이유는 무엇입니까? –
코드가 컴파일되지 않습니다. – japreiss