C++ 继承

目录

继承概念及其定义

概念

定义

继承方式

 继承类模板

 基类于派生类之间的转换

继承中的作用域 

派生类型的默认成函数

         特殊点(不可继承类)

继承与友元

继承与静态成员

继承与组合

 多继承与菱形继承

        继承模型

        问题

         虚继承

一、节省内存空间

二、避免二义性问题

三、实现原理


继承概念及其定义

概念

        C++继承是一种面向对象编程的特性,允许一个类(称为子类或派生类)继承另一个类(称为基类或父类)的属性和方法。通过继承,子类可以重用和扩展基类的代码,实现代码复用和层次化设计。

         例如:

        对于两个类 Studen 和 Teacher 它们都有相同的成员变量,但是又各自又不同的成员变量,把它们设计到两个类里面就是冗余的,但是它们各自的不同的成员变量是“学号”,“职称”,它们各自的功能也不同,是“学习”与“授课”

class Student
{
public:
	void study(){
		//..
	}
protected:
	string _name = "A";//重复的
	string _student_id = "1231312312";//不重复的
};

class Teacher
{
public:
	void teach() {
		//..
	}
protected:
	string _name = "A";//重复的
	string _teacher_id = "1231312312";//不重复的
};

        为了解决这问题,我们使用它俩继承People的行为

class People
{
public:
	void A()
	{

	}
protected:
	string _name;
};

class Student :public People
{
public:
	void study()
	{

	}
private:
	string _student_id;
};

class Teacher :public People
{
public:
	void teach()
	{

	}
private:
	string _teacher_id;
};

定义

        C++继承是指一个类(子类)能够获取另一个类(基类)的属性和方法,从而实现代码复用和扩展的一种机制。

 

//	   派生类名      继承方式    基类名
class   Student  :   public      People
{
	//扩展内容
public:
	void study()
	{

	}
private:
	string _student_id;
};

继承方式

                                        public继承        protected继承        private继承

        虽然关键字和访问限定符 相同 但是 不同 于访问限定符

它们遵循这样的规则进行继承

基类类成员//继承方式 public protected private
public public protected private
protected protected protected private
private 不可见 不可见 不可见

 

 

 

 

总结:基类类成员是private继承后全不可见

           剩下的会按照继承方式 public不变 其它的相同与继承方式

注意 

        基类成员的private实际上是被继承了,只是无法在派生类中操作

        基类中的“private”建议以protected的形式写

        class的默认继承方式是priavre,struct的默认继承方式是public

        public的使用更多

class People
{
public:
	void C()
	{
		_C = 0;
	}
	int _A;
protected:
	int _B;
priv
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值