来学c++(本文极其干,请配合饮用水观看)

发布于:2022-12-28 ⋅ 阅读:(402) ⋅ 点赞:(0)


前言

这篇文章会带您了解c++中继承的权限问题和构造函数的写法注意!

ps:本文只讲了单继承,但是多继承也是同理,如果需要,可以留言,我会出一个多继承

 


提示:以下是本篇文章正文内容,下面案例可供参考

一、c++继承是什么?

继承中我们要认识两个东西,一个是父类(也叫作基类),一个是子类(也叫作派生类)

首先父类会被子类所继承,继承有三种方式继承,这也是类中public,protected,private的区别

继承允许子类成员的属性和父类的方法或重新定义,附加的属性和方法等。

二、使用步骤

1.如何创建一个子类

代码如下(示例):

class MM
{
public:   
 int mm1;
protected:

string name;

};
class Boy:public MM
{
public:
 
protected:

};

 

2.访问子类的数据

代码如下(示例):

int main()

{

   Boy boy;

   cout<<boy.mm1<<endl;

}

 

注意:类外只能访问public继承下来的数据

无论是public,protected,private子类都会继承,但是权限的不同,效果不同

3.protected与private的区别

protected和private一样不能在类外访问,但是protected的继承方式可以被子类访问,而private不可以

代码如下(示例):

 

class MM
{
public:
int a;
protected:
int b;
private:
int c;
};

class Boy:protected MM
{

public:
void print()
{

cout<<a<<b<<endl;//不能访问c
}
protected:

};

class Son:private MM
{

public:
void print()
{

cout<<"NO DATA "<<endl;//不能访问a,b,c
}
protected:

};




注意: 什么样的继承方式决定了,继承下来的成员函数和数据的权限

权限只会更加严谨不会更加宽松

是从public->protected->private 的转换方式

不会颠倒过来,不可能用public继承,父类的private里面的数据还是private

4.继承的构造函数

    单继承构造函数写法
    1.子类的构造函数必须要用父类的构造函数,因为继承下来的属性,只能通过父类的构造函数进行初始化
    2.子类的构造函数 初始化父类的属性的时候,必须采用初始化参数列表的方式进行初始化
    3.如果你不想写构造函数,缺省的写法,就是在父类写一个无参构造函数
    4.当父类没有无参构造函数的时候,子类的构造函数必须显示的用初始化参数列表调用父类的构造函数
  

代码如下:

class MM
{
public:
	MM(string name, int money):name(name),money(money)
	{
		cout << "调用父类的构造函数" << endl;
	}
	/*MM()
	{
		cout << "父类的无参构造函数" << endl;
	}*/
protected:
	string name;
	int money;
};
class Boy :public MM
{
public:
	Boy(string boyname, string name, int money):MM(name,money)
	{
		this->boyname = boyname;
	}
	void print()
	{
		cout << boyname << "\t" + name << "\t" << money << endl;
	}
protected:
	//string name;
	//int money;
	string boyname;
};
class Girl:public Boy
{
public:
	Girl(string name,int money,string boyname):Boy( boyname,name,money){}
	
protected:
	//string name;
	//int money;
	//string boyname;
};
int main() {

	Boy boy1("陈", "mm", 100);
	boy1.print();
	MM mm1("MM", 200);
	Girl mm2("女神", 500,"男孩");
	mm2.print();

	return 0;
}

 注意点:
    No.1 继承具有继承性!血脉 一直在,所有一个类不会被继承很多次,一个类也不会继承太多父类

当然如果你忙的过来你随意~_~
    No.2 采用私有继承可以避免一个类被其他类继承使用

 


总结

对于c++的单继承就这么多

总结一下就是:

1.注意权限问题

2.注意构造函数的写法

3.其实还需要注意同名的问题,但是留在下一个文章里说吧。

如果这篇文章帮助到了你,还请您关注一下,因为我和您将彼此成长,我们都会成为大牛!

 

本文含有隐藏内容,请 开通VIP 后查看