我喜欢创建基类的子类,但是不知何故我无法传递匿名堆栈数组。
基类构造函数:
Shape::Shape(int origin[2], unsigned int vectorAmount, int vectors[][2])
: origin{ origin }, VECTOR_AMOUNT{ vectorAmount }, vectors{ vectors } {}
子类构造函数:
I::I(int origin[]) : Shape(origin, 3, { {0,1},{0,-1} }) {
}
我该如何处理?感谢您的回答。
答案 0 :(得分:0)
通过类似STL的容器替换C样式的成员,这将使您的生活更加轻松:
using Matrix = std::vector<std::vector<int>>;
using Origin = std::array<int,2>;
class Shape {
public:
explicit Shape(const Origin& origin, const Matrix& vectors = Matrix()) :
origin(origin), vectors(vectors) {}
private:
Origin origin{};
Matrix vectors{};
};
class I : public Shape {
public:
explicit I(const Origin& origin) :
Shape(origin) {
}
};