关于public ,private protect

protect和private成员要使用本类的成员函数去访问,不能直接使用其本类的对象访问。注意:基类的protect成员变量可以被子类的成员函数去访问,但基类的private成员
变量不能能被子类的成员函数访问。 也就是说protect和private成员变量都可以被本类的成员函数访问,但protect变量还可以被子类的成员函数访问,但private变量不行,
这就是private变量和protect变量的区别。  stud.num=100;//出错,//假如num是Student类的protected成员,不能直接使用对象访问。但这样就可访问 到私有成员了。
class myD
{
 private:
   int a;
 public:
   int Getint() {return a+b;}
protect:
   int b;
 public:
myD(int x,int y):a(x),b(y){}
};
class myson: public myD
{
 private:
   int a;
 public:
   int Get() {return myDa::b;}
};

只有构造函数可以有基/成员初始值列表。如下将错误,
class myD
{
private: 
int a;
protected: 
int b;
public:
// myD():a(11),b(22){}
 int Getint():a(11),b(22) { cout << a<< endl; return a;} 
int get() {return b;}
}; 

正确如下

class myDR
{
private: 
   int a; 
protected:
   int b;
public: 
   myDR():a(11),b(22) {}
int GetA(){ cout << a<< endl; return a;}
int getB() {return b;}
};

main()
{ 
 myD myd; 
 myd.get(); 
 myd.Getint();
 int c = myd.a; //错误,不能使用对象直接访问protect和private成员 int i = myd.b; //错误,同上
 mySON mySd;
 int i= mySd.get();
}


 

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值