C++继承与派生——(4)派生类的构造函数
2023-12-28 08:55:11
?
归纳编程学习的感悟,
记录奋斗路上的点滴,
希望能帮到一样刻苦的你!
如有不足欢迎指正!
共同学习交流!
🌎欢迎各位→点赞 👍+ 收藏? + 留言?📝
缺乏明确的目标,一生将庸庸碌碌!
一起加油!
???????定义好派生类后,通常需要用派生类定义对象,在定义对象时,系统会自动调用构造函数进行初始化。由于派生类不能继承基类的构造函数,必须定义自己的构造函数,并且派生类拥有基类所有的数据成员,因此,派生类的构造函数除了需要对自己的数据成员进行初始化外,还必须调用基类的构造函数初始化基类的数据成员,这种调用过程是编译系统自动完成的。若基类构造函数需要一些形参,派生类构造函数必须要传相应的参数给基类构造函数,否则编译会出现错误。
????????派生类构造函数的一般格式如下:
<派生类名>(<总参数表>) :<基类名> (<参数表 1>),<对象成员名>(<参数表 2>)
{
<派生类数据成员的初始化>
}
????????与一般构造函数基本原则相同: 派生类的构造函数与类名相同,无任何返回值:派生类构造函数的总参数表中不仅包括用来对派生类新成员初始化的参数,还包括基类初始化所需要的参数如果派生类中有子对象,还应包括子对象初始化的参数。在参数表之后,需要列出基类名、传给基类构造函数的参数、对象成员名,以及用来对对象成员进行初始化的参数,各项目之间用逗号隔开。
例:派生类构造函数示例。
#include<iostream>
#include<string>
using namespace std;
class Person{
private:
string name;
int age;
char sex;
public:
Person(string pName,int pAge,char pSex){
name=pName;
age=pAge;
sex=pSex;
}
string getName(){
return name;
}
int getAge(){
return age;
}
char getSex(){
return sex;
}
void print();
};
void Person::print(){
cout<<"姓名:"<<name<<endl;
cout<<"年龄:"<<age<<endl;
cout<<"性别:"<<sex<<endl;
}
class Student:public Person{
private:
int ID;
double score;
public:
Student(string pName,int pAge,char pSex,int pID,double pScore): Person(pName,pAge,pSex){
ID=pID;
score=pScore;
}
int getID(){
return ID;
}
double getScore(){
return score;
}
void print();
};
void Student::print(){
Person::print();
cout<<"学号:"<<ID<<endl;
cout<<"分数:"<<score<<endl;
}
int main(){
Student s("李华",18,'F',20230011,95);
s.print();
return 0;
}
?????????以上就是我对C++继承与派生——(4)派生类的构造函数的理解,希望本篇文章对你有所帮助,也希望可以支持支持博主,后续博主也会定期更新学习记录,记录学习过程中的点点滴滴。如果有不懂和发现问题的小伙伴,请在评论区说出来哦,同时我还会继续更新对C++继承与派生的理解,请持续关注我哦!!!?
文章来源:https://blog.csdn.net/2301_80585598/article/details/135251739
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!