[英]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
類的屬性)設置為name
、 age
和isStudying
的值,但我在此語句中遇到錯誤:
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.