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();
}
关于public ,private protect
最新推荐文章于 2024-03-23 07:27:42 发布