zoukankan      html  css  js  c++  java
  • private、protected、public讨论

    public: 类对象和类函数都可以访问;

    private:类对象不可以访问,类成员函数可以访问;

    protected:

     如果成员对象或者函数在本类中具有protected,对于成员函数而言具有public,对于类对象而言具有private。// 所谓本类就是所在类

    在本类的讨论中来看,protected具有和private同样的特性。

    区别:在继承中可以体现出来。

    ——————————————————————————————————————————————————————————————

    继承关系
    public继承:基类的public和protected成员的访问属性在派生类中保持不变,但基类的private成员不可访问。派生类的成员可以直接访问基类中的public和protected成员,但不能访问基类的private成员。通过派生类的对象只能访问基类的public对象。
    private继承:基类的public和protected成员都以private出现在派生类中,但基类的private成员不可访问。派生类的成员可以直接访问基类中的public和protected成员,但不能访问基类的private成员。通过派生类的对象不能访问基类任何成员。
    protected继承:基类的public和protected成员都以protected出现在派生类中,但基类的private成员不可访问。派生类的成员可以直接访问基类中的public和protected成员,但不能访问基类的private成员。通过派生类的对象不能访问基类任何成员。

    ——————————————————————————————————————————————————————————————

    View Code
     1 #include <iostream>
    2 using namespace std;
    3 class A
    4 {
    5 protected:
    6 int a;
    7 void fun()
    8 { cout << "funa" << endl; }
    9 public:
    10 A(int i) : a(i) {}
    11 void s()
    12 { cout << a << endl; }
    13 };
    14 class B : public A
    15 {};
    16 void main()
    17 {
    18 A b(1);
    19 b.s(); // 通过
    20 //cout << b.a << endl; // 报错
    21 //cout << b.fun() << endl; // 报错
    22 }


     

  • 相关阅读:
    Springboot导入freemarker模板
    IDEA卡在 Downloading plugins for .....
    安装配置CURL命令行工具
    Spring-boot在IDEA中实现热部署
    强制类型转换
    Raphael.js最基本绘制示例代码
    Raphael.js最基本绘制示例代码
    Raphael.js API之Element.unXXX(),Paper.getElementByPoint(),Paper.getElementsByPoint(),vee(),Element.ge
    Raphael.js API之Element.unXXX(),Paper.getElementByPoint(),Paper.getElementsByPoint(),vee(),Element.ge
    Raphael.js API之Element.mousedown(),Element.mousemove(),Element.mouseup(),Element.mouseout(),Element.
  • 原文地址:https://www.cnblogs.com/xuxu8511/p/2405803.html
Copyright © 2011-2022 走看看