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 }


     

  • 相关阅读:
    BZOJ1527 : [POI2005]Pun-point
    2016-2017 ACM-ICPC Southwestern European Regional Programming Contest (SWERC 2016)
    2016-2017 ACM-ICPC Northwestern European Regional Programming Contest (NWERC 2016)
    NAIPC-2016
    BZOJ2498 : Xavier is Learning to Count
    ACM ICPC Vietnam National Second Round
    XVI Open Cup named after E.V. Pankratiev. GP of Ukraine
    XVI Open Cup named after E.V. Pankratiev. GP of Peterhof
    HDU5509 : Pattern String
    BZOJ4583 : 购物
  • 原文地址:https://www.cnblogs.com/xuxu8511/p/2405803.html
Copyright © 2011-2022 走看看