ROS学习笔记6:C++基础知识(续)

 三、继承与多态:

1.基类与派生类:

(1)继承:

        面对对象程序设计中最重要的一个概念是继承。

        继承允许我们根据一个类去定义另一个类,这使得创建和维护一个应用程序变得更容易。这样做也达到了代码复用功能和提高执行效率的效果。当创建一个类时,不需要重新编写新的数据成员和成员函数,只需指定新建的类继承了一个已有的类的成员即可。这个已有的类称为基类,新建的类称为派生类。

(2)继承的基本语法:

class 子类 :继承方式 父类

2.继承方式:

(1)公有继承(public):

class Base
{
public:
	int m_A;
protected:
	int m_B;
private:
	int m_C;
};

 
class Son1 :public Base
{
public:
	void func()
	{
		m_A;//可访问,为public权限
		m_B;//可访问,为protected权限
		//m_C;//不可访问 
	}
};

void test01()
{
	Son1 s1;
	s1.m_A;
	//s1.m_B;//错误,protected
	//s1.m_C;//错误,父类private 
}

        子类Son1以公共的方式继承了Base类,在其内部可以访问m_A和m_B,不能访问父类中的私有成员m_C。类外的全局函数test01()中创建了Son1的对象s1,但只能访问m_A。

(2)保护继承(protected):

class Base
{
public:
	int m_A;
protected:
	int m_B;
private:
	int m_C;
};

 
class Son2 :protected Base
{
public:
	void func()
	{
		m_A;//可访问,为protected权限
		m_B;//可访问,为protected权限
		//m_C;//不可访问 
	}
};

void test02()
{
	Son2 s2;
	//s2.m_A;//错误,protected
	//s2.m_B;//错误,protected
	//s2.m_C;//错误,父类private 
}

        子类Son2以保护的方式继承了Base类,在其内部可以访问m_A和m_B且它们都是保护成员,不能访问父类中的私有成员m_C。类外的全局函数test01()既不能访问保护成员m_A和m_B,也不能访问m_C。

(3)私有继承(private):

class Base
{
public:
	int m_A;
protected:
	int m_B;
priv
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值