我想问你为什么下面评论的那两个“学生”构造函数不起作用。
#include<iostream>
#include<string>
using namespace std;
class Temp{
public:
void Tempshow(){
cout << "Mother Class" << endl;
}
};
class Person{
private:
string name;
public:
Person(string name): name(name){} //member initialization
string getName(){
return name;
}
void showName(){
cout << "Name : " << getName() << endl;
}
};
class Student : Person, public Temp {
private:
int studentID;
public:
Student(int studentID, string name) : Person(name){
this->studentID = studentID;
}
// Student(int studentID, string name){
// Person(name);
// this->studentID = studentID;
// }
// Student(int studentID, string name){
// this->studentID = studentID;
// }
void show(){
cout << "Student Number : " << studentID << endl;
cout << "Student Name : " << getName() << endl;
}
void showName(){
cout << "Inherent Success : " << getName() << endl;
}
};
int main(){
Student student = Student(1, "James");
student.showName();
student.Tempshow();
return 0;
}
另外我想问...
Student(int studentID, string name) : Person(name){
this->studentID = studentID;
}
在这句话中'Student'构造函数的参数中,'studentID'和'name'只是参数并且只是在'Student'构造函数的范围内工作吗?或者'studentID'和'name'是'Student'类和'Person'类的成员变量?
我不知道这句话如何为“Person”构造函数提供参数
Student student = Student(1, "James");