C++学习,类访问修饰符

C++数据封装是面向对象编程的一个重要特点,类成员的访问限制,通过在类主体内部对各个区域标记 public、private、protected 关键字区分。关键字 public、private、protected 称为访问修饰符。

类可以有多个 public、protected 或 private 标记区域。每个标记区域,在下一个标记区域开始之前或者在遇到类主体结束右括号之前都是有效的。成员和类的默认访问修饰符是private。

public公有成员,在程序中类的外部是可访问的,示例如下:

#include <iostream> 
using namespace std;
 
class Line
{
   public:
      double length;
      void   setLength( double len );
      double getLength( void );
};

double Line::getLength(void)
{
    return length ;

void Line::setLength( double len )
{
    length = len;
}
 

int main( )
{
   Line line; 
   line.setLength(8.0); 
   cout << "Length of line : " << line.getLength() <<endl;
 
   line.length = 18.0; 
   cout << "Length of line : " << line.length <<endl;
   return 0;
}

private私有成员,变量或函数在类的外部是不可访问的,甚至是不可查看的。只有类和友元函数可以访问私有成员,默认情况下,类的所有成员都是私有private,示例如下:

#include <iostream> 
using namespace std;
 
class Rect
{
   public:
      double length;
      void   setWidth( double wth );
      double getWidth( void );
 
   private:
      double width;
};
 

double Rect::getWidth(void)
{
    return width ;

void  Rect::setWidth( double wth )
{
    width = wth;
}
 
int main( )
{
   Rect rect;
 
   box.length = 8.0; 
   cout << "Length of rect : " << rect.length <<endl;

   box.setWidth(18.0); 
   cout << "Width of rect : " << rect.getWidth() <<endl;
 
   return 0;
}

protected保护成员,变量或函数与私有成员相似,但protected成员在派生类(即子类)中是可访问的,示例如下:

#include <iostream>
using namespace std;

class Line
{
   protected:
      double width;
};

class Line2:Line
{
   public:
      void   setWidth( double wth );
      double getWidth( void );
};

double Line2::getWidth(void)
{
    return width ;
}

void Line2::setWidth( double wth )
{
    width = wth;
}

int main( )
{
   Line2 line;

   line.setWidth(5.0);
   cout << "Width of line : "<< line.getWidth() << endl;

   return 0;
}
 

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值