C++之 class 的三种访问修饰符( public、private、protected )

类的语法定义形式:

class B
{
    public:  //公有成员 

    private:  //私有成员

    protected:   //受保护成员

}:

公有(public)成员:在程序类的外部可以访问

#include<iostream>
using namespace std;
class area
{
	public:       //公有成员,外部可以访问 
		double breadth;
		double length;	
};

int main()
{
	area area1;
	area area2;
	double AREA;
	
	area1.breadth=3.45;   //通过.进行访问
	area1.length=3.1;
	
	area2.breadth=2.4;
	area2.length=5.0;
	
	AREA=area1.breadth*area1.length;
	cout << AREA <<endl;
	AREA=area2.breadth*area2.length;
	cout << AREA <<endl;
	
	return 0;
	
 } 

私有(private)成员:类的外部是不可访问的,只有类和友元函数可以访问私有成员

#include<iostream>
using namespace std;
class Box
{
	public:
		double length;
		void setwidth(double wid);
		double getwidth(void);
		
	private:
		double width;
 };
 //成员函数定义
 double Box::getwidth(void)	
 	{
	 return width;
}
 void Box::setwidth(double wid) 
 	{
	 width =wid;
}
 //程序的主函数
 int main() 
 {
 	Box box;
 	//不使用成员函数设置长度
	box.length=10.0;
	cout << "Length of box :" << box.length << endl;

	//不使用成员函数设置宽度
	//box.width=10.0;       //Error:因为width是私有的

	box.setwidth(10.0);    //使用成员函数设置宽度
	cout << "width of box :" << box.getwidth() << endl;
	return 0; 
 }

受保护(protected)成员:   保护成员在派生类(即子类)中是可访问的

#include<iostream>
using namespace std;

class Box
{
	protected:
		double width;
		
 } ;

class SmallBox:Box //smallBox 是派生类
 {
 	public:
 		void setSmallwidth(double wid);
 		double getSmallwidth(void);
 		
  };
  //子类的成员函数 
  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;
   }

成员和类的默认访问修饰符是 private

猜你喜欢

转载自blog.csdn.net/gxgalaxy/article/details/81259083