簡體   English   中英

如何在子類c ++的構造函數中設置基類的屬性

[英]How to set an attribute of a base class in a constructor of a sub class c++

我在Student類中有以下構造函數,它是基類Person的子類:

namespace Uni
{
    Uni::Student::Student(string majorCourse, int enrollNumber , string name, int age, bool isStudying)
        : Uni::Person::Person(std::__1::string name, int age, bool isStudying), majorCourse_(majorCourse), enrollNumber_(enrollNumber)    
    {
        cout << "[Temp] Student Default Constructor" << endl;
    }
    ...
}

我想將屬性name_age_isStudying_ (它們是Person類的屬性)設置為nameageisStudying的值,但我在此語句中遇到錯誤:

Uni::Person::Person(std::__1::string name, int age, bool isStudying)

不允許類型名稱

我怎樣才能解決這個問題?

您應該只是將參數轉發到基類,因此丟失類型名

 Uni::Student::Student(string majorCourse, int enrollNumber , string name, int age, bool isStudying)
  : Uni::Person::Person(name, age, isStudying),
    majorCourse_(majorCourse),
    enrollNumber_(enrollNumber)
 { }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM