私はC++で次のJavaコードを記述しようとしている:最初に2D配列をC++のスーパークラスに送信して、サブクラスを初期化しますか?
public class Block {
private int[][] block;
public Block(int[][] block) {
this.block = block;
}
}
public class Block1 extends Block {
public Block1() {
super(new int[][]{{2,3},{3,1}});
}
}
あなたは、私はC++へのコードの私の翻訳が付属しているどこまで見ることができます下。基本的には、Blockを継承クラス(現在のところBlock1のみ)が2D配列としてそれらのデータを格納するのに役立つ一般的なクラスにします。これらの配列は、サブクラスのコンストラクタで直接初期化する必要があります。 しかし、私はBlock1で正常に動作するスーパーコールを取得することはできません、どのように私は2次元配列をパラメータとして送信するか、または正しく参照を再度格納する方法を知っていません。もしあなたが私にこれを見せることができれば素晴らしいだろう。
(私はクラスに後からより多くのメソッドを追加します - これは問題に関連した唯一の最も重要なものである。)
Block.h:
#ifndef BLOCK_H_
#define BLOCK_H_
namespace mtch {
class Block {
public:
Block(int _block[][2]);
virtual ~Block();
private:
int block[2][2];
};
} /* namespace mtch */
#endif /* BLOCK_H_ */
Block.cpp:
#include "Block.h"
namespace mtch {
Block::Block(int _block[][2]) {
block = _block;
}
} /* namespace mtch */
Block1.h:
#include "Block.h"
#ifndef BLOCK1_H_
#define BLOCK1_H_
namespace mtch {
class Block1 : public Block {
public:
Block1();
virtual ~Block1();
};
} /* namespace mtch */
#endif /* BLOCK1_H_ */
Block1.cpp:
#include "Block1.h"
namespace mtch {
Block1::Block1() : Block(new int[][]{{2,2},{2,3}}) {
}
}
私はあなたが私がここで達成しようとしているものを理解してほしいです。 :P