保护成员和私有成员很相似,但是就是在子类中,保护成员可以访问,而私有成员不能被访问,也就是说子类中的函数,可以访问父类中的保护成员变量,而不能访问私有成员变量,要想访问父类中的私有成员变量,只能通过父类中定义的函数。
eg:
#include <iostream>
using namespace std;
class Box
{
private:
int length;
protected:
double width;
void setlength(int len);
int getlength();
};
void Box::setlength(int len){
length=len;
}
int Box::getlength(){
return length;
}
class SmallBox:Box // SmallBox 是派生类
{
public:
void setlen(int len);
void setSmallWidth( double wid );
double getSmallWidth( void );
};
void SmallBox::setlen(int len){
length=len;
}//编译时,函数会在这里报错,因为子类函数试图访问父类私有成员变量length
// 下面两个函数不会报错,因为width是保护成员变量
double SmallBox::getSmallWidth(void)
{
return width ;
}
void SmallBox::setSmallWidth( double wid )
{
width = wid;
}
// 程序的主函数
int main( )
{
SmallBox box;
// 使用成员函数设置宽度
box.setSmallWidth(5.0);
cout << "Width of box : "<< box.getSmallWidth() << endl;
return 0;
}
欢迎留言交流