class Itembuilder
{
private:
int numOfX;
int numOfY;
int numOfZ;
int numOfSpc;
int itemMatrix [numOfZ][numOfY][numOfX];
public:
void build (Space spc, Item item)
{
numOfX = item.getX()/spc.getX(); //number of space requirement for X origin
numOfY = item.getY()/spc.getY(); //number of space requirement for Y origin
numOfZ = item.getZ()/spc.getZ(); //number of space requirement for Z origin
for (int layer=1; layer<=numOfZ; layer++) // stating layers of item through Z origin
{
for (int orgY=1; orgY<=numOfY; orgY++) // stating origin Y of a layer
{
for (int orgX=1; orgX<=numOfX; orgX++) // stating origin X
{
itemMatrix[layer][orgY][orgX]=0;
}
}
}
}
};
こんにちは、私はC++でコーディングするのがとても新しいです。私はドメインに割り当てるための3Dアイテムを構築しようとしています。まず、他のクラスから "item.get"と "spc.get"変数を取得しました。 itemMatrixでユニットを0にすると、私的な変数の非静的条件についてエラーが出ます。どのように私は宇宙ユニットをマトリックスで表現しますか?マトリックス・ビルディングの非静的データ・メンバーの無効な使用
int itemMatrix[numOfZ][numOfY][numOfX];
C++を使用して、他のメンバーの宣言にメンバ変数の値を使用することはできません:
は、問題がここにある1適切おかげ
[mcve]と実際のエラーテキストを含めてください。パラフレーズは重要な細部を失う傾向があります。 – NathanOliver
問題は、コンパイラがオブジェクトのサイズを判断できないことです。 'std :: vector'を使いましょう –
警告:C++の配列は、' int x [size] 'の配列に対して' 0'から 'size - 1'に移動します。したがって、あなたの 'for 'ループは遅く始まり、あまりにも遠くに行きます。 – crashmstr