微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C++中构造函数的成员初始化

如何解决C++中构造函数的成员初始化

我想问你为什么下面评论的那两个“学生”构造函数不起作用。

    #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");

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。