C++ 类 访问限制

/*
    基类定义以下三种类型的成员变量:
        public: 基类和派生类对象都可以访问
        protected: 基类和派生类的对象都不可以访问,可以在各自的成员函数中访问
        private: 基类和派生类对象都不可以访问,派生类不可以在其成员函数中访问
 */
#include <iostream>

using namespace std;

class Item_base
{
public:
    int a;
private:
    int b;
protected:
    int c;
};

class Bulk_item : public Item_base
{
public:
    void init(Item_base& item)
    {
        a = 2;
        //b = 2;  //error private
        c = 2;    //ok protected
        item.a = 1;
        //item.b = 1; //error private
        //item.c = c * 3; //error protected
    }
};

int main()
{
    Item_base item;
    item.a = 1;
    //item.b = 1;  //error private
    //item.c = 1;  //error protected
    Bulk_item bulk_item;
    bulk_item.init(item);
    bulk_item.a = 2;
    //bulk_item.c = 2; //error protected 
    //bitem.b = 2;  //error private
    return 0;
}
View Code
原文地址:https://www.cnblogs.com/yaling/p/5166733.html