类访问修饰符

数据封装是面向对象编程的一个重要特点,它防止函数直接访问类类型的内部成员。类成员的访问限制是通过在类主体内部对各个区域标记 public、private、protected 来指定的。关键字 public、private、protected 称为访问修饰符。

共有成员(public)

公有成员在程序中类的外部是可访问的。可以不使用任何成员函数来设置和获取公有变量的值

#include <iostream>using namespace std ;class Box
{
public :int Lenth ;int Width ;int Height ;void SetLenth(int len);int GetLenth(void);
};int Box::GetLenth(void)
{return Lenth ;
}void Box::SetLenth(int len)
{Lenth = len ;
}void main()
{// 使用成员函数Box box ;box.SetLenth(2);cout << "Lenth is  " <<box.GetLenth()<< endl;// 不使用成员函数box.Lenth = 4 ;cout << "Lenth is  " << box.Lenth << endl ;
}/* 运行结果
Lenth is  2
Lenth is  4
*/

私有成员(private)

私有成员变量或函数在类的外部是不可访问的,甚至是不可查看的。只有类和友元函数可以访问私有成员。

#include <iostream>using namespace std ;class Box
{
public :void SetLenth(int len);int  GetLenth(void);
private:int Lenth ;int Width ;int Height ;
};int Box::GetLenth(void)
{return Lenth ;
}void Box::SetLenth(int len)
{Lenth = len ;
}void main()
{// 使用成员函数Box box ;box.SetLenth(2);cout << "Lenth is  " <<box.GetLenth()<< endl;// 不使用成员函数,编译出错。 因为Lenth 是私有的。不能在类的外部直接访问
//  box.Lenth = 4 ;
//  cout << "Lenth is  " << box.Lenth << endl ;
}

保护成员(protected)

保护成员变量或函数与私有成员十分相似,但有一点不同,保护成员在派生类(即子类)中是可访问的。

#include <iostream>using namespace std ;class Box
{
public :void SetLenth(int len);int  GetLenth(void);
private:int Width ;int Height ;
protected:int Lenth ;
};class SmallBox:Box    // SmallBox 是派生类
{
public :void SetSmallLenth(int len);int  GetSmallLenth(void);
};// 子类的成员函数 可以 直接访问父类的受保护变量
int SmallBox::GetSmallLenth(void)
{return Lenth ;
}void SmallBox::SetSmallLenth(int len)
{Lenth = len ;
}void main()
{SmallBox box ;box.SetSmallLenth(5);    cout << "Lenth is " << box.GetSmallLenth() << endl ;
}

C++——类访问修饰符相关推荐

  1. C++:类访问修饰符

    C++ 类访问修饰符 类成员的访问限制是通过在类主体内部对各个区域标记 public.private.protected 来指定的. 关键字 public.private.protected 称为访问 ...

  2. 类和对象编程(二):类访问修饰符

    C++ 类访问修饰符 数据封装是面向对象编程的一个重要特点,它防止函数直接访问类类型的内部成员.类成员的访问限制是通过在类主体内部对各个区域标记 public.private.protected 来指 ...

  3. 关于C#中的类访问修饰符

    转载于:https://www.cnblogs.com/lizunicon/archive/2008/04/28/1174838.html

  4. 【译文】 C#面向对象的基本概念 (Basic C# OOP Concept) 第一部分(类,对象,变量,方法,访问修饰符)...

    译文出处:http://www.codeproject.com/Articles/838365/Basic-Csharp-OOP-Concept 相关文档:http://files.cnblogs.c ...

  5. 第九天2017/04/18(2、类的继承、面试题:继承访问修饰符、组合、static、构造、多态)

    继承:可以使用原来的代码,代码复用 多态:代码复用.接口复用,用基类的指针"根据对象"调用"指定对象的函数". 1.继承.访问修饰符//C++类成员的3种访问级 ...

  6. 基本语法及基本概念概述(标识符、访问修饰符、变量、数组、枚举、注释、空行、继承、接口、(对象、类、方法、实例变量)、关键字表)

    文章目录 1.标识符 2.标识符命名规范 3.访问修饰符 4.变量 5.数组 6. 枚举 7.注释 8.空行 9.继承 10.接口 11.对象.类.方法.实例 12.关键字表 13.保留字(reser ...

  7. 【小白学习C++ 教程】十一、C++类中访问修饰符

    @Author:Runsen 类是面向对象编程.它是一种用户定义的数据类型,它拥有自己的数据成员和成员函数,可以通过创建该类的实例来访问和使用它们. 一个对象是一个类的实例.定义类时,不会分配内存,但 ...

  8. JAVA SE、EE、ME,JRE、JDK,基本数据类型,访问修饰符、函数、封装的概念、UML类图、构造方法、this关键字、static关键字、方法重载、方法重写、包(packahe)

    运行第一个JAVA程序: 这里使用的开发环境是eclipse,新建一个java工程,然后可以看到src这个是存放java代码的地方,然后在src文件右击新建一个class(类),然后可以看到下图,同样 ...

  9. [转载] 面试题:说说Java中接口、类、成员变量、成员方法、构造方法有哪些访问修饰符和他们的作用范围

    参考链接: Java中的访问修饰符 * 问题:说说Java中接口.类.成员变量.成员方法.构造方法有哪些访问修饰符和他们的作用范围 * 答:接口的访问修饰符只有public 1个 *    类的访问修 ...

最新文章

  1. next_permutation(,)用法
  2. python读法1002python读法-Python教程之绘制Mandelbrot集合
  3. 5800对于存储卡密码设置问题
  4. 【PAT乙级】1042 字符统计 (20 分)
  5. 一个自定义类型的运算符重载的例子
  6. java 监听文件内容_java 监听文件内容变化
  7. 服务器安装系统教程进光盘界面,iso光盘系统怎么安装系统教程
  8. 专科python应届生工资多少-请问学过一点python,应届生怎么找工作?
  9. ADB工具包下载及安装
  10. AccessControl专业智能门禁管理系统 操作说明书
  11. phpstudy、Apache安装DVWA教程
  12. DELL 灵越系列笔记本 1427 更换显示屏
  13. 分论坛介绍:机器学习、企业数据中台、实验科学与因果推断
  14. Pandas数据分析与处理补充习题
  15. 约瑟夫生死者游戏_独立游戏从死者特许经营中夺冠时,游戏玩家获胜
  16. 白墙挂什么画 超美的6款白墙挂画选择推荐
  17. python(2): If/for/函数/try异常/调试/格式输出%
  18. Genlovy_Hoo大神的杰作
  19. css加载中lodding遮罩动画
  20. 打包docker镜像推送到远程服务器并部署到k8s

热门文章

  1. phpstrtotime()对于31日求上个月有问题
  2. EDM营销的三个小窍门-EDM营销必看
  3. Android驱动中的Kconfig文件与Makefile文件
  4. java线程池饱和策略_线程池的饱和策略-调用者执行 | 学步园
  5. 大数据可视化html模板开源_5个最受工程师欢迎的大数据可视化工具
  6. MySQL:Innodb DB_ROLL_PTR指针解析
  7. 【剑指offer】反转链表,C++实现(链表)
  8. c# 使用TCP连接(server)
  9. VI和VIM编辑器深入学习笔记--基本vi命令
  10. 请大家访问另一个我的博客!