C++类的继承

本篇介绍C++的类的继承特性。

1.派生类不能继承基类的构造函数、析构函数和拷贝构造函数;基类的重载运算符;基类的友元函数。

2.继承类型:几乎不使用 protected 或 private 继承,通常使用 public 继承。

1)公有继承(public):当一个类派生自公有基类时,基类的公有成员也是派生类的公有成员,基类的保护成员也是派生类的保护成员,基类的私有成员不能直接被派生类访问,但是可以通过调用基类的公有和保护成员来访问。

2)保护继承(protected): 当一个类派生自保护基类时,基类的公有和保护成员将成为派生类的保护成员。

3)私有继承(private):当一个类派生自私有基类时,基类的公有和保护成员将成为派生类的私有成员。

3.多继承:即一个子类可以有多个父类,它继承了多个父类的特性。

/*
* Author:W;
* 类的继承
* 1.派生类不能继承基类的构造函数、析构函数和拷贝构造函数;基类的重载运算符;基类的友元函数。
* 
* 2.继承类型:几乎不使用 protected 或 private 继承,通常使用 public 继承。
* 1)公有继承(public):当一个类派生自公有基类时,基类的公有成员也是派生类的公有成员,
*基类的保护成员也是派生类的保护成员,基类的私有成员不能直接被派生类访问,但是可以通过调用基类的公有和保护成员来访问。
* 2)保护继承(protected): 当一个类派生自保护基类时,基类的公有和保护成员将成为派生类的保护成员。
* 3)私有继承(private):当一个类派生自私有基类时,基类的公有和保护成员将成为派生类的私有成员。
* 
* 3.多继承:即一个子类可以有多个父类,它继承了多个父类的特性。
*/

//引入头文件:头文件包含了程序中必需的或有用的信息
#include <iostream>
using namespace std;

/*基类1:房子*/
class House 
{
public:
	void setWidth(float wid);
	void setHeight(float hei);
protected:
	float width;
	float height;
};

//设置宽度
void House::setWidth(float wid)
{
	width = wid;
}

//设置高度
void House::setHeight(float hei)
{
	height = hei;
}

/*基类2:装修成本计算*/
class PaintCost
{
public:
	float getCost(float area);
};

//装修成本计算
float PaintCost::getCost(float area)
{
	return area * 45;
}

/*别墅*/
class Villa:public House,public PaintCost
{
public:
	float getArea();
};

//获取别墅的装修面积
float Villa::getArea()
{
	return width * height;
}



//main程序执行入口函数
int main()
{	
	Villa villa;
	villa.setWidth(75.5);
	villa.setHeight(25.5);

	float areaSize = villa.getArea();
	cout << "别墅的装修面积S = " << areaSize << endl;

	float cost = villa.getCost(areaSize);
	cout << "别墅的装修成本:" << cost << endl;
}


运行结果如下:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Data菌

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

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

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

打赏作者

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

抵扣说明:

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

余额充值