私は2つの(無関係な)クラスを持っています。最初のものは「ポイント」です:
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 ファイルの先頭、「良い習慣」ですか?)
2 つ目は「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_;
};
次に、3 番目のクラス「Plane_Vertex」(平面のどこかにある頂点) を作成します。私はそれを行うための2つの方法を考えています:
多重継承 : Plane_Vertex クラスは Point と Vertex の両方から継承し、メンバーはありません
Point point_
Plane_Vertex クラスは Vertex からのみ継承し、プライベートメンバーを持ちます。
もちろん、多重継承を簡単に回避してオプション 2 を選択することもできますが、私は少し良心的な C++ 学習者であり、自分の状況での「良い実践」とは何かを知りたいと思っています。
あなたの洞察に感謝します!