C++学习笔记----------继承和派生(三大特性之一)

继承和派生是C++语言中最重要的一个特性,它涵盖了C++的精髓,是C++对于C语言的最大区别度,下面让我们一起来探讨一下吧!

  • 继承与派生的简论:
    在这里插入图片描述

  • 派生类成员的访问属性:

在这里插入图片描述
实验1:
先建立一个Point类,包含数据成员x,y(坐标),函数成员void print()用于输出坐标点,如(1,2);以Point类为基类,派生出一个Circle类,增加数据成员raduis(半径),增加函数成员void print()用于输出圆心和半径、函数成员double area()用于计算圆的面积;在主函数中,定义对象来测试类的声明。

#include<iostream>
using namespace std;

//Point类:
class Point
{

public:

Point(int xx = 0,int yy = 0)
{
x = xx;
y = yy;
}

protected:
int x,y;

};

//派生类对Pointe基类进行访问(派生类的声明):
class Circle:public Point
{

public:

Circle(int xx = 0,int yy = 0,int rr = 0)
{
Point(xx,yy);
r = rr;
}

void area(void)
{
double s = 3.14*r*r;
cout<<s<<endl;
}

protected:
int r;

};

int main(void)
{

Circle cir(1,2,3);
cir.area();
return 0;

}

  • 派生类的构造/析构函数:
    在这里插入图片描述
    在这里插入图片描述

  • 多重继承&&基类和派生类间的转化:
    在这里插入图片描述在这里插入图片描述
    实验2:
    基类与派生类之间的转化及赋值举例。

#include<iostream>
using namespace std;

//基类:
class Base
{
	int x;
public:
	Base(){x=0;};
	Base(int xx){x=xx;};
	void print(){cout<<"x="<<x<<endl;}
};

//派生类:
class Derived:public Base
{
	int y;
public:
	Derived(){y=0;}
	Derived(int xx,int yy):Base(xx){y=yy;}
	void print(){cout<<"y="<<y<<endl;}
};

int main()
{

	Base b1(10);
	Derived d1(20,30);
	b1.print();
	d1.print();
	cout<<endl;

	Base &rb=b1;
	Base &rd=d1;
	Derived &r=d1;
	rb.print ();
	rd.print ();
	r.print ();
	cout<<endl;

	Base *pb;
	pb=&b1;
	pb->print();
	pb=&d1;
	pb->print();
	Derived *pd=&d1;
	pd->print();
	b1=d1;
	b1.print();

	return 0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值