std::array , get_vertices , ( ) . std::array, std::array, , face , :
template<size_t N>
class face {
virtual std::array<ptr, N>& get_vertices(void) const = 0;
};
class triangle : public face<3>{
std::array<ptr, 3>& get_vertices(void) const { return vertices; };
};
class quadrilateral : public face<4> {
std::array<ptr, 4>& get_vertices(void) const { return vertices; };
};
, triangle quadrilateral : face<3> face<4> - . , triangle quadrilateral , , , get_vertices , . .
, :
class triangle : public face {
private:
std::vector<ptr> vertices;
public:
triangle()
{
vertices.reserve(3);
}
std::vector<ptr>& get_vertices(void) const { return vertices; };
};
, quadrilateral:
quadrilateral()
{
vertices.reserve(4);
}
, , , reserve(), , . .