阿狸先森|一文让你学完C++,干货收藏(11)
变量 length、breadth 和 height 都是私有的(private) 。 这意味着它们只能被 Box 类中的其他成员访问 , 而不能被程序中其他部分访问 。 这是实现封装的一种方式 。
为了使类中的成员变成公有的(即 , 程序中的其他部分也能访问) , 必须在这些成员前使用 public 关键字进行声明 。 所有定义在 public 标识符后边的变量或函数可以被程序中所有其他的函数访问 。
把一个类定义为另一个类的友元类 , 会暴露实现细节 , 从而降低了封装性 。 理想的做法是尽可能地对外隐藏每个类的实现细节 。
数据封装的实例C++ 程序中 , 任何带有公有和私有成员的类都可以作为数据封装和数据抽象的实例 。 请看下面的实例:
实例
#include
Total 60上面的类把数字相加 , 并返回总和 。 公有成员 addNum 和 getTotal 是对外的接口 , 用户需要知道它们以便使用类 。 私有成员 total 是对外隐藏的 , 用户不需要了解它 , 但它又是类能正常工作所必需的 。
六、c++进阶 模板和stl入门C++ 模板模板是泛型编程的基础 , 泛型编程即以一种独立于任何特定类型的方式编写代码 。
模板是创建泛型类或函数的蓝图或公式 。 库容器 , 比如迭代器和算法 , 都是泛型编程的例子 , 它们都使用了模板的概念 。
每个容器都有一个单一的定义 , 比如 向量 , 我们可以定义许多不同类型的向量 , 比如 vector
您可以使用模板来定义函数和类 , 接下来让我们一起来看看如何使用 。
函数模板
模板函数定义的一般形式如下所示:
template 在这里 , type 是函数所使用的数据类型的占位符名称 。 这个名称可以在函数定义中使用 。
下面是函数模板的实例 , 返回两个数中的最大值:
实例
#include 当上面的代码被编译和执行时 , 它会产生下列结果:
Max(i, j): 39Max(f1, f2): 20.7Max(s1, s2): World类模板正如我们定义函数模板一样 , 我们也可以定义类模板 。 泛型类声明的一般形式如下所示:
template 在这里 , type 是占位符类型名称 , 可以在类被实例化的时候进行指定 。 您可以使用一个逗号分隔的列表来定义多个泛型数据类型 。
下面的实例定义了类 Stack<> , 并实现了泛型方法来对元素进行入栈出栈操作:
实例
#include
推荐阅读
- 基尔摩斯|2020年中报最有料的瓜,一文看尽
- 三好先森|技术与人类的关系到底是什么?
- 阿狸先森|现今如何了?,被联想198亿元收购的巨头摩托罗拉
- 三好先森|「精选」20个黑科技软件下载网站,让你再无找不到的软件
- |一文读懂去中心化自治组织——DAO
- 阿狸先森|被联想198亿元收购的巨头摩托罗拉,现今如何了?
- |血压为何总是忽高忽低?4方面原因和解决办法,一文为您说清楚
- 小胖先森|或是华米第一款联名手表?,华米预热新品
- 第一财经|一文读懂公募REITs业务配套文件说了什么
- 文件|一文读懂公募REITs业务配套文件说了什么
