C++ inheritance getting error
c++, inheritance
Solution
You are attempting to call `Person`'s default constructor, but it doesn't have one. In any case, it looks like what you want to do is call its single parameter constructor:
Student::Student(const string& name, int regNo) : Person(name), regNo(regNo)
{
}
Similarly, use the constructor initialization list in `Person`'s consructor:
Person(const string& name) : name(name) {}
This way, you are initializing your data members to the desired value, instead of default initializing them and then assigning them new values.
Problem
I'm having a bit of trouble figuring out this error I have. So I have a Person class, and a Student subclass. The Person class has the following constructor: ``` Person(const string &name) { this->name = name; } ``` The Student class has the following constructor: ``` Student::Student(const string &name, int regNo) { this->name = name; this->regNo = regNo; } ``` When I try to compile the Student class though, I get this error for the constructor: In constructor 'Student::Student(const string&, int)': error: no matching function for call to 'Person::Person()' I'm new to C++, so I have no idea why I get this error, but it has something to do with the inheritance of Person obviously.