C++继承与派生——(4)派生类的构造函数

 

归纳编程学习的感悟,
记录奋斗路上的点滴,
希望能帮到一样刻苦的你!
如有不足欢迎指正!
共同学习交流!
🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言​📝
缺乏明确的目标,一生将庸庸碌碌!

一起加油!

       定义好派生类后,通常需要用派生类定义对象,在定义对象时,系统会自动调用构造函数进行初始化。由于派生类不能继承基类的构造函数,必须定义自己的构造函数,并且派生类拥有基类所有的数据成员,因此,派生类的构造函数除了需要对自己的数据成员进行初始化外,还必须调用基类的构造函数初始化基类的数据成员,这种调用过程是编译系统自动完成的。若基类构造函数需要一些形参,派生类构造函数必须要传相应的参数给基类构造函数,否则编译会出现错误。

        派生类构造函数的一般格式如下:

<派生类名>(<总参数表>) :<基类名> (<参数表 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++继承与派生的理解,请持续关注我哦!!! 

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梵豪

你的鼓励将是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值