Lab0回顾:encapsulation的概念

数据结构第一周的课程是回顾基本的c++的概念,在lab1里的体现为这么几点

Encapsulation(封装)

封装是面向对象编程中的把数据和操作数据的函数绑定在一起的一个概念,这样能避免受到外界的干扰和误用,从而确保了安全。数据封装引申出了另一个重要的 OOP 概念,即数据隐藏

数据封装是一种把数据和操作数据的函数捆绑在一起的机制,数据抽象是一种仅向用户暴露接口而把具体的实现细节隐藏起来的机制。

C++ 通过创建来支持封装和数据隐藏(public、protected、private)。我们已经知道,类包含私有成员(private)、保护成员(protected)和公有成员(public)成员。默认情况下,在类中定义的所有项目都是私有的。

然后菜鸟教程给的例子是“private”“protected”“public”域的运用,不过上课讲的跟这个有些区别,是通过.h文件和.cpp文件的分离实现的:

Encapsulation is the separation of interface from implementation.

.h is for interface

.cpp is for implementation

结合写lab的经历来看,我现在的理解是在.h文件里你可以看到有什么类,类里有什么函数和方法,但是你没办法知道函数和方法是如何写的。如下所示:

这个是.h文件。

这个是.cpp文件。

优点当然是避免受到外界的干扰和误用,但就是要include咯,而且我现在还有点糊涂,什么时候该include,什么时候不用include。

Namespace(命名空间)

写代码的时候要小心的一点就是写#ifndef了不要忘记在最后写#endif,之前一直报错,编译了才发现是这个问题,,,

不过为什么要写#ifndef暂时还没有弄懂。

晚点学习下C++ 命名空间 | 菜鸟教程 (runoob.com),然后再听下教授是怎么说的,然后回头完善下这里。

Pointer&Memory(指针与内存)

Pointer is the address of the memory.

有一说一,lab0里实际c++代码的部分还蛮简单的,虽然也是用pointer,但感觉非常直接,所以没什么想要强调的。倒是上课讲的stackframe我还是没有完全弄懂,唉,继续插眼。

总而言之,lab0只要搞懂了encapsulation,其它的就不是什么问题。。。

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值