Я пытаюсь закодировать следующий код Java в 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) хранить данные о них в виде двумерных массивов.Эти массивы должны быть инициализированы прямо в конструкторе подклассов.Но я не могу заставить супер-вызов работать правильно в Block1, и при этом я не знаю, как мне отправить 2D-массив в качестве параметра, или как правильно сохранить ссылку на него снова.Было бы здорово, если бы вы, ребята, могли бы показать мне это.
(позже я добавлю больше методов в классы - это только самые важные вещи, связанные с проблемой.)
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