0

重複の可能性:
コンストラクターのこの奇妙なコロンメンバー構文は何ですか?

この種のコードの意味を理解しようとしています

私はこれを持っていると言う

class OptionStudent: public Student // derived class from Student class
{
    public:
        explicit OptionStudent(const std::string id = "12345678", 
                               const std::string first = "someone")
        : Student(id, first)
        {
             count_++;
        }
}

「誰か」の後のコロンは何ですか):<-このコンストラクターの一部と呼ばれるか、それを意味しますか?
コンストラクターが少し間違っているかもしれないことは知っていますが、これが何と呼ばれているのかわかりません。インストラクターがボードに書いていたものからメモをコピーしただけで、理解できませんでした。
クラスやオブジェクトが何かを覚えていることと何か関係がありますか?

4

2 に答える 2

1

メンバー初期化リストです。idこの場合、引数を使用して、および引数として基本クラスのコンストラクターを呼び出しfirstます。staticまた、クラスの非データメンバー(存在する場合)の初期値を提供することもできます。

後のセミコロンStudent(id, first);は構文エラーであり、削除する必要があることに注意してください。

于 2012-11-26T12:21:46.610 に答える
0

これを「初期化リスト」と呼びます。次の記事「C++での初期化リストについて」を参照してください。

基本的な考え方は、コンストラクターのコードを入力するときに、{すべてのメンバーを引数またはデフォルトとして渡される値に初期化する必要があるということです。

初期化リストを使用して、引数を基本クラスに直接渡すこともできます。これはあなたが説明している例で起こっていることです:

  • まず、との両方idfirst使用していくつかの値に設定しますdefault parameter value
  • 次に、これらの値は基本Studentクラスを初期化するために使用されます。

もちろん、OptionStudent引数としてさまざまな値を渡すことができ、これらの値は初期化に使用されますStudent

于 2012-11-26T12:33:15.750 に答える