アンクルボブは3つ以下の引数が関数を取得する必要ことを示唆している少数のパラメータ:3つの引数を取る継承と彼の<em>クリーンコード</em>で
機能がダイアドより理解 にかなり困難です。 の発注、一時停止、および無視の問題は2倍以上になります。私はあなたが非常に慎重に考える前にお勧めします トライアドを作成する前に。
しかし、クラス継承階層のCTOR引数はどうでしょうか?階層の各クラスが新しいフィールドを追加し、CTORでそれらを初期化する必要がある場合
class Person
{
private:
std::string m_name;
int m_age;
public:
Person(const std::string& name, const int age);
std::string getName() const { return m_name; }
int getAge() const { return m_age; }
~Person();
};
class Student : public Person
{
private:
std::string m_university;
int m_grade;
public:
Student(const std::string& name, const int age, const std::string& university, const int grade);
std::string getUniversity() const { return m_university; }
int getGrade() const { return m_grade; }
~Student();
};
Student
は4つの引数を取得する方法Person
が取得する一方で、参照のみ2とStudent
さらに2つを追加します。以下の例を参照してください。だから私たちはこれをどのように扱うべきですか?
あなたはそれにちょうど 'Parameters'という名前をつけたいので、それは外部から' Student :: Parameters'としてスコープされています。 – Quentin
私はちょうどソリューションの抽象的なビューを与えた:) – fgrdn