クラスを使用することで新しく、配列をクラスに分類する際に問題が発生しました。私は50文字に制限されたテキストのchar配列を初期化し、その文字列を関数に置き換えたい。私はそのC++クラス内で配列を宣言し、クラス内で2次元配列を宣言する
casestatematricia[linenumber][columnnumber]
のように列番号と行番号を入力する場所私はこの後の2次元配列を動的にしたいという
char casestatematricia[][];
のように私の2次元配列を初期化することができところで
#ifndef MAP_H
#define MAP_H
#include "Sprite.h"
#include <SFML/Graphics.hpp>
#include <iostream>
class Map : public sprite
{
private:
char mapname[50];
int columnnumber;
int linenumber;
char casestatematricia[];
public:
void setmapname(char newmapname[50]);
void battlespace(int column, int line);
void setcasevalue(int col, int line, char value);
void printcasematricia();
};
#endif
戦場を作る。
これはcppコードであり、私は何をしたいのか考えています。
#include "Map.h"
#include <SFML/Graphics.hpp>
#include <iostream>
using namespace sf;
void Map::setmapname(char newmapname[50])
{
this->mapname = newmapname;
}
void Map::battlespace(int column, int line)
{
}
void Map::setcasevalue(int col, int line, char value)
{
}
void Map::printcasematricia()
{
}
ありがとうございます。
文字列を含む 'char'配列を置き換える' std :: string'を見てください。また、生のコンテナを使用する代わりに 'std :: vector'、' std :: list'、 'std :: map'、...(つまり標準コンテナ)を見てください。 – Garf365
@ Garf365私はchar [50]を使用しません。なぜなら、このデータはあとでシリアル化されなければならないため、固定重量を持たなければなりません。 –
私はシリアル化しなければならないデータを持っていて、 'std :: string'でポーランドムはありません。あなたは何人かのセッターを持っているので、サイズの条件を追加するだけです。 – Garf365