码迷,mamicode.com
首页 > 编程语言 > 详细

C++继承方式简介及公有继承

时间:2020-05-03 10:25:39      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:pac   size   影响   +=   open   oat   point   his   public   

继承方式简介及公有继承

  不同继承方式的影响主要体现在:

  1.派生类成员对基类成员的访问权限

  2.通过派生类对象对基类成员的访问权限

  三种继承方式

  公有继承

  私有继承

  保护继承

  公有继承(public)

  继承的访问控制

    基类的public和protected成员:访问属性在派生类中保持不变;

    基类的private成员:不可访问。

  访问权限

    派生类的成员函数;可以直接访问基类的public和protected成员,private成员;

    通过派生类的对象:只能访问public成员。

技术图片
 1 #ifndef _POINT_H
 2 #define _POINT_H
 3 
 4 class Point {
 5     //基类point类的定义
 6 public:
 7     //公有成员函数
 8     void initPoint(float x = 0, float y = 0) {
 9         this->x = x;
10         this->y = y;
11     }
12     void move(float offx, float offy) {
13         x += offx;
14         y += offy;
15     }
16     float getX() const { return x; }
17     float getY() const { return y; }
18 
19 private:
20     //私有数据成员
21     float x, y;
22 
23 };
24 
25 #endif // !_POINT_H
Point.h
技术图片
 1 #ifndef _RECTANGLE_H
 2 #define _RECTANGLE_H
 3 #include "point.h"
 4 class Rectangle :public Point {
 5     //派生类定义部分
 6 public:
 7     //新增公有函数成员
 8     void initRectangle(float x, float y, float w, float h) {
 9         initPoint(x, y); //调用基类公有成员函数
10         this->w = w;
11         this->h = h;
12     }
13     float getH() const { return h; }
14     float getW() const { return w; }
15 private:
16     //新增私有数据成员
17     float w, h;
18 };
19 #endif // !_RECTANGLE_H
Rectangle.h
技术图片
 1 #include <iostream>
 2 #include <cmath>
 3 #include "rectangle.h"
 4 using namespace std;
 5 
 6 
 7 int main()
 8 {
 9     Rectangle rect; //定义rectangle类对象
10     //设置矩形的参数
11     rect.initRectangle(2, 3, 20, 10);
12     rect.move(3, 2); //移动矩形数据
13     cout << "the data of rect(x,y,w,h):" << endl;
14     //输出矩形的特征参数
15     cout << rect.getX() << ","
16         << rect.getY() << ","
17         << rect.getW() << ","
18         << rect.getH() << endl;
19     return 0;
20 }
main.c

 

C++继承方式简介及公有继承

标签:pac   size   影响   +=   open   oat   point   his   public   

原文地址:https://www.cnblogs.com/xuelanga000/p/12820777.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!