【发布时间】:2020-07-08 14:56:27
【问题描述】:
我在类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)
类型名称不允许
我该如何解决这个问题?
【问题讨论】:
-
附带说明,切勿直接使用
std::__1::string,这是编译器标准库的实现细节。只需改用std::string,然后让库将其映射到它需要的任何实现。
标签: c++ constructor derived-class base-class