C++自主学习日志19

类的继承

继承(inheritance)机制是面向对象程序设计中使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能。这样产生的新类,称派生类(或子类),被继承的类称基类(或父类)。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。之前接触的复用都是函数复用,继承是类设计层次的复用。

#include <iostream>

#include<cstdio>

#include<iomanip>

using namespace std;

const double PI=3.14;

class Shape //定义一个父类Shape

{

protected:

double X,Y; //父类里定义了double类型的X,Y;

public:

Shape():X(),Y(){}

};

class Rectangle:public Shape //定义子类Rectangle继承父类Shape

{

protected:

double L,W; //在父类X,Y的基础上定义L,W;

public:

Rectangle(double l,double w){L=l;W=w;}

double GetArea(){return L*W;} //子类定义一个函数方法求面积并带有返回值‘’

};

class Circle:public Shape //定义子类Circle继承父类Shape

{

protected:

double R; ////在父类X,Y的基础上定义R;

public:

Circle(double r){R=r;}

double GetArea(){return R*R*3.14;}

};

class Square:public Rectangle //定义子类Square继承父类Rectangle

{

protected:

double T; //在父类X,Y,L,W的基础上定义T;

public:

Square(double l,double w,double t):Rectangle(l,w),T(t){}方法

double GetArea(){return T*T;}

};

int main()

{

double l,w,r,t;

cin>>l>>w;

cin>>r;

cin>>t;

Rectangle R(l,w);

Circle C(r);

Square S(l,w,t);

cout<<R.GetArea()<<endl;

cout<<C.GetArea()<<endl;

cout<<fixed<<setprecision(0)<<S.GetArea()<<endl;

}

全部评论

相关推荐

2025-12-10 19:50
山西大学 测试工程师
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务