首页 / C++ / c++第四次作业:类的继承
c++第四次作业:类的继承
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c++第四次作业:类的继承,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1844字,纯文字阅读大概需要3分钟。
内容图文
![c++第四次作业:类的继承](/upload/InfoBanner/zyjiaocheng/690/a9eab9d5d95847879ac1f1be4b6c658c.jpg)
一、定义
类的继承:是从新的类从已有类那里得到已有的特性。
二、方式
1.公有继承:当类的继承方式为公有继承时,基类的公有成员和保护成员的访问属性在派生类中不变,而基类的私有成员不可直接访问。
例:
#include<iostream>
using namespace std;
class Point//基类
{
public:
void initP(float xx,float yy)
{
x=xx;
y=yy;
}
void move(float xOff,float yOff)
{
x+=xOff;
y+=yOff;
}
float getX() {return x;}
float getY() {return y;}
private:
float x,y;
};
class Rectangle:public Point //公有继承
{
public:
void initR(float x,float y,float w,float h)
{
initP(x,y);//调用基类公有成员函数
this->w=w;
this->h=h;
}
float getH() {return h;}
float getW() {return w;}
private:
float w,h;
};
int main()
{
Rectangle rec;
rec.initR(2,3,20,10);
rec.move(3,2);
cout<<"rec(x,y,h,w):"<<endl;
cout<<rec.getX()<<","
<<rec.getY()<<","
<<rec.getH()<<","
<<rec.getW()<<endl;
}
//运行结果为:
//rec(x,y,h,w):
//5,5,10,20
2.私有继承:当类的继承方式为私有继承时,基类的公有成员和保护成员都以私有成员身份出现在派生类中,而基类的私有成员在派生类中不可直接访问。
一般情况下私有继承使用比较少。
例:
#include<iostream>
using namespace std;
class Point{
public:
void initP(float xx,float yy)
{
x=xx;
y=yy;
}
void move(float xOff,float yOff)
{
x+=xOff;
y+=yOff;
}
float getX() {return x;}
float getY() {return y;}
private:
float x,y;
};
class Rectangle:private Point//私有继承
{
public:
void initR(float x,float y,float w,float h)
{
initP(x,y);
this->w=w;
this->h=h;
}
void move(float xOff,float yOff){Point::move(xOff,yOff);}
float getX() {return Point::getX();}
float getY() {return Point::getY();}
float getH() {return h;}
float getW() {return w;}
private:
float w,h;
};
//main函数与上例完全相同
3.保护继承:保护继承中,基类的公有成员和保护成员都以保护成员身份出现在派生类中,而基类的私有成员不可直接访问。
例:
class A{
protected :
int x;
};
calss B: public A{
public:
void function();
};
void B::function(){
x=5;
}
int main(){
B b;
b.function();
return 0;
}
内容总结
以上是互联网集市为您收集整理的c++第四次作业:类的继承全部内容,希望文章能够帮你解决c++第四次作业:类的继承所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。