• 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 }


     

  • 相关阅读:
    pyspark读取parquet数据
    python求时间差
    pandas索引操作之loc,iloc,ix等方法
    pandas的concat和drop函数
    mysql语句的书写顺序和执行顺序
    hive的lower,upper,length,concat,lpad,rpad,cast,split函数简述
    hive的floor函数,ceil函数,round函数
    Pandas建立空的dataframe和cumsum累加函数
    Python基础笔记二之求序列均值、标准差、中位数、分位数
    NAT实验
  • 原文地址:https://www.cnblogs.com/xuxu8511/p/2405803.html
Copyright © 2020-2023  润新知