【从 C 向 C++ 进阶】- 类 - 18. 类的继承

本文详细介绍了C++中类的继承概念,包括继承的特性、访问级别、继承属性、构造过程以及成员冲突处理。通过实例解析了公有继承、私有继承、保护继承的区别,并探讨了成员初始化列表的重要性。此外,文章还强调了子类覆盖父类同名成员的现象以及函数重载的限制。
摘要由CSDN通过智能技术生成

1. 类的继承

类之间可以存在继承关系,又称父子关系,父类又称为基类,子类又称为派生类。父子类之间有以下特点:

  • 子类拥有父类的所有属性和行为。
  • 子类对象可以当父类对象使用,可增加父类没有的属性和方法。
  • 子类对象可以直接初始化为父类对象。
  • 子类对象可以直接赋值给父类对象。

继承的形式如下:

class Parent
{
   
    ...
};

class Child : public Parent
{
   
    ...
};

以上为公有属性继承,表示子类对父类的成员访问级别保持不变,这也是最常用的继承属性。

  • 实验:
class Parent
{
   
private:
	int mVar;
	
public:
	int GetmVar()
	{
   
		return mVar;
	}
	void SetmVar(int num)
	{
   
		mVar = num;
	}
};

class Child : public Parent
{
   
};

int main(int argc, char *argv[])
{
   	
	Child obj;
	obj.SetmVar(5);
	cout << "obj.GetmVar() = " << obj.GetmVar() << endl;  // obj.GetmVar() = 5
}

2. 继承中的访问级别

在封装篇中提到,除了公有属性 public 与私有属性 private 之外,还有保护属性 protected。保护属性介于公有属性与私有属性之间,是专门为了继承而设置的。

父类中保护属性的成员,在子类中能直接访问,除此之外均不可直接访问。

  • 实验:
class Parent
{
   
protected:
	int mVar;
	
public:
	int GetmVar()
	{
   
		return mVar;
	}
};

class 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值