🥥访问控制与封装
2022-5-15
| 2023-8-2
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
Property
 
使用访问说明符(access specifier) 可以加强类的封装性:
  • 定义在public说明符之后的成员在整个程序内都可以被访问,public成员定义类的接口
  • 定义在private说明符之后的成员可以被类的成员函数访问,但是不能被使用该类的代码访问,private部分封装(隐藏)了类的实现细节
 
定义Sales_data类的新形式如下所示:
作为接口的一部分,构造函数和部分成员函数(isbncombine 紧跟在public说明符之后,而数据成员和作为实现部分的函数则跟在private说明符后面
 
一个类可以包含零或多个访问说明符,而且对于某个访问说明符能出现多少次也没有严格限定。每个访问说明符指定了接下来的成员的访问级别,其有效范围到出现下一个访问说明符或类的结尾处为止。
 
class 或struct 关键字
可以使用这两个关键字中的任何一个定义类,唯一的一点区别是二者的默认访问权限不太一样
  • 使用关键字struct定义类时,定义在第一个访问说明符之前的成员是public
  • 而使用关键字class时,这些成员是private
 
封装的好处:
  • 确保用户代码不会无意间破坏封装对象的状态
  • 被封装的类的具体实现细节可以随时改变,而无须调整用户级别的代码
 
 
由类定义的类型名字和其他成员一样存在访问限制,可以是publicprivate中的一种:
与普通成员不同,用来定义类型的成员必须先定义后使用,类型成员通常位于类起始处
 
  • C++
  • 拷贝、赋值和析构(销毁)可变数据成员mutable
    目录