访问控制与封装

本文介绍了C++中如何通过public和private访问说明符来实现类的封装,并解释了构造函数初始化列表的作用及使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前为止,我们已经为类定义了接口,但并没有任何机制强制用户使用这些接口。我们的类还没有封装,也就是说,用户可以直达sales_data对象的内部并且控制它的具体实现细节。在C++中,我们使用访问说明符加强类的封装性;

  定义在public说明符之后的成员在整个程序内可被访问,public成员定义类的接口。

  定义在private说明符之后的成员可被类的成员函数访问,但是不能被使用该类的代码访问,private部分封装了类的实现细节。

冒号在C++中的作用主要表现在以下几个方面:
1、表示结构内位域的定义(即该变量占几个bit空间)

typedef struct _XXX{
unsigned char a:4;
unsigned char c;
} ; XXX

2、构造函数后面的冒号起分割作用,是类给成员变量赋值的方法,初始化列表,更适用于成员变量的常量const型。

struct _XXX{
_XXX() : y(0xc0) {}
};

3、 public和private后面的冒号,表示后面定义的所有成员都是公有或私有的,直到下一个"public:”或"private:”出现为止。"private:"为默认处理。

4、类名冒号后面的是用来定义类的继承。

class 派生类名 : 继承方式 基类名
{
派生类的成员
};继承方式:public、private和protected,默认处理是public。



5、类构造函数(Constructor)的初始化列表
class myClass
{
public :
myClass(); // 构造函数,无返回类型,可以有参数列表,这里省去
~myClass();// 析构函数
int a;
const int b;
}
myClass::myClass():a(1),b(1)  // 初始化列表
{
}

作为接口的一部分,构造函数和部分成员函数紧跟在public说明符之后:而成员和作为实现部分的函数则跟在private说明符之后;

 一个类可以包含0个或多个访问说明符,而且对于某个访问说明符能出现多少次也没有严格限定。每个访问说明符制定了接下来的成员的访问级别,其有效范围直到出现下一个访问说明符或者到达类的结尾处为止。

在上面的定义中我们还做了一个微妙的变化,我们使用了class关键字而非struct开始类的定义。这种变化仅仅是形式上有所不同,实际上我们可以使用这两个关键字中的任何一个定义类。唯一的区别就是,struct和class的默认访问权限不太一样。

注意:struct和class的唯一区别就是,默认访问权限。

 

转载于:https://www.cnblogs.com/yjds/p/8597253.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值