我有两个(不相关的)课程。第一个是“点”:
typedef std::complex<double> complex_number;
class Point
{
public:
Point(const complex_number &affix);
const complex_number & get_affix() const;
void set_affix(const complex_number & new_affix);
// etc
private:
complex_number affix_;
};
(顺便说一句,很抱歉问了这个不相关的问题,但是在哪里放置我的类型定义的正确位置?这里是我的 point.hpp 文件的顶部,“良好做法”吗?)
第二个是“Abstract_Vertex”(这意味着稍后将成为抽象图的一部分):
typedef int vertex_label;
class Abstract_Vertex
{
public:
Abstract_Vertex(const vertex_label &label);
const vertex_label & get_label() const;
const vertex_label & get_neighbor_label(const int &index) const;
void set_label(const vertex_label &new_label);
bool is_neighbor_label(const vertex_label &label) const;
// etc
protected:
vertex_label label_;
std::vector<vertex_label> neighbor_labels_;
};
现在我想创建第三个类,“Plane_Vertex”(位于平面某处的顶点)。我正在考虑两种方法来做到这一点:
多重继承:Plane_Vertex 类继承自 Point 和 Vertex,并且没有任何成员
Plane_Vertex 类仅继承自 Vertex 并具有私有
Point point_
成员。
当然,我可以很容易地避免多重继承,而只选择选项 2。但我是一个认真的 C++ 学习者,我想知道在我的情况下会有什么“好的做法”。
感谢您的见解!