美文网首页
c++中对于访问权限的控制..

c++中对于访问权限的控制..

作者: 一ccc | 来源:发表于2017-11-25 19:13 被阅读0次

看深度探索c++对象模型时感觉对c++继承中的权限控制都忘记了..所以写一个复习的..基本是复制粘贴喽.

受保护的成员protected
  • 和私有成员类似,protected对类的用户不可访问.
  • 和公有成员雷士,受保护的成员对于派生类的成员和来说是可以访问的.
  • 派生类的成员或友元只能通过派生类对象来访问基类的protected,派生类对于一个基类对象中的protected没有访问权限
//第三条的代码说明
#include<iostream>
using namespace std;
class Point {
public:
    Point(float x = 0.0) :_x(x) {}
protected:
    float _x;
};
class  Point2d:public Point
{
public:
    void asd(Point2d &);
    void asd1(Point &);
};
void Point2d::asd(Point2d &a)
{
    cout << a._x;
}
void Point2d::asd1(Point &a)
{
    cout << a._x;
}

1.png
class Point2d:public Point
这个public派生类访问说明符的目的是控制派生类用户(包括派生类的派生类在内)对于基类成员的访问权限,对派生类本身没有影响.
#include<iostream>
using namespace std;
class Point {
public:
    Point(float x = 0.0, float y = 0.0) :_x(x), _y(y) {}
    void print() { cout << _x<< _y; }
protected:
    float _x;
private:
    float _y;
};
class  Point2d:public Point
{
public:
    int asd() { return _x; }
    int asd1() { return _y; }
};
class  Point3d :private Point
{
public:
    int asd() { return _x; }
    int asd1() { return _y; }
};
int main()
{
    Point2d a;
    Point3d b;
    a.print();
    b.print();
}
2.png

无论派生类访问说明符是public还是protected基类中的private都无法访问.

3.png

但是因为Point3d的派生类访问符是private所以Point3d的
用户无法访问基类中的print函数.


运行环境 vs2017
[1]斯坦利·李普曼,约瑟·拉乔伊,芭芭拉·默.C++ Primer中文版(第5版)[J].中国科技信息,2013(20):34.
ps:参考文献有点酷...

相关文章

  • c++中对于访问权限的控制..

    看深度探索c++对象模型时感觉对c++继承中的权限控制都忘记了..所以写一个复习的..基本是复制粘贴喽. 受保护的...

  • java权限控制

    浅析Java中的访问权限控制 今天我们来一起了解一下Java语言中的访问权限控制。在讨论访问权限控制之前,先来讨论...

  • Java基础学习六 关键字

    java语言中的访问控制权限修饰符 访问控制权限修饰来控制元素的访问范围。 访问控制权限修饰符包括:public ...

  • C++三种继承方式的比较

    C++访问权限控制符 : public 公有成员 基类、派生类、友元、外部都可以访问 prote...

  • class VS struct(c++)

    简介 本文主要介绍在C++中struct与class的主要区别 默认访问权限 class的默认访问权限是priva...

  • Java编程思想(第四版)学习笔记(7)

    第六章 访问权限控制 1.访问权限控制的等级 从最大权限到最小权限依次为:public、protected、包访问...

  • 进阶:访问控制权限

    访问控制权限 访问控制权限:private、protected、public、 默认。 private:私有的只...

  • WebGoat<二> Access Conreol Flaws

    在基于角色的访问控制方案中,角色表示一组访问权限和权限。用户可以被分配一个或多个角色。基于角色的访问控制方案通常由...

  • 权限控制

    RBAC模式进行权限控制,即(Role-Based Access Control)基于角色的访问控制。实现权限访问...

  • java 中访问权限控制

    修饰类 默认访问权限(包访问权限):用来修饰类的话,表示该类只对同一个包中的其他类可见。。 public:用来修饰...

网友评论

      本文标题:c++中对于访问权限的控制..

      本文链接:https://www.haomeiwen.com/subject/lnwcbxtx.html