/*
基类定义以下三种类型的成员变量:
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;
}