保护成员和私有成员很相似,但是就是在子类中,保护成员可以访问,而私有成员不能被访问,也就是说子类中的函数,可以访问父类中的保护成员变量,而不能访问私有成员变量,要想访问父类中的私有成员变量,只能通过父类中定义的函数。
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;
}
欢迎留言交流