《C++面向对象高效编程(第2版)》——2.11 C++中的数据抽象

简介:

本节书摘来自异步社区出版社《C++面向对象高效编程(第2版)》一书中的第章,第2.11节,作者: 【美】Kayshav Dattatri,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.11 C++中的数据抽象

C++面向对象高效编程(第2版)
C++中数据抽象的基本单元是类(class)。

注意:
为理解本节的内容,你必须对C和C++语法有基本的了解,必须熟悉函数名重载、C++参数样式、const参数和const成员函数、引用等。
C++中类的概念是C中结构(或者Pascal中的record)概念的延伸。接下来,我们为TInt类定义接口:

class TInt {
 public:  
  // 构造函数:用int创建一个TInt 
 TInt(int value);  
 TInt(long mostSignificant, unsigned long leastSignificant);  
 TInt(long value);   // 用long整数创建一个TInt 
 TInt(short value);   // 用short整数创建一个TInt 
 TInt();     // 默认构造函数 
 TInt(const TInt& copy); // 复制构造函数
   TInt& operator=(const TInt& assign);  // 赋值操作符
  ~TInt();  // 析构函数
 // TInt类型的操作符
 TInt operator+(const TInt& operand) const;  // 加法
 TInt operator-(const TInt& operand)const;  // 减法
 TInt operator*(const TInt& multiplicand) const;  // 乘法
 TInt operator/(const TInt& divideBy) const;  // 除法
 TInt operator%(const TInt& divideBy) const;  // 求模
 
 TInt operator+=(const TInt& operand);  // 加法赋值操作
 // 简化起见略去其他操作符
 // 计算TInt数的‘to’次幂
 TInt Power(const TInt& to) const;
 void Print() const; 
 TInt Absolute() const;  // 返回TInt的绝对值
 void FlipSign();  // 改变数字的符号
 // 辅助函数(_helper function_)
 long GetMostSignificantPart() const;
 unsigned long GetLeastSignificantPart() const;
private:
   // TInt类型的内部表示
   unsigned long _leastSignificantPart;
   long    _mostSignificantPart;
   // 也许还包含其他私有成员函数,此处略去
};```
相关文章
|
24天前
|
存储 前端开发 Java
【C++ 多线程 】C++并发编程:精细控制数据打印顺序的策略
【C++ 多线程 】C++并发编程:精细控制数据打印顺序的策略
42 1
|
3月前
|
存储 数据管理 开发工具
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机本身的数据保存(CustomData)功能(C++)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机本身的数据保存(CustomData)功能(C++)
46 0
|
13天前
|
存储 人工智能 BI
【C++面向对象】C++银行卡管理系统(源码+论文)【独一无二】
【C++面向对象】C++银行卡管理系统(源码+论文)【独一无二】
|
21天前
|
算法 IDE Java
【软件设计师备考 专题 】面向对象程序设计语言:C++、Java、Visual Basic和Visual C++
【软件设计师备考 专题 】面向对象程序设计语言:C++、Java、Visual Basic和Visual C++
39 0
|
24天前
|
存储 缓存 安全
【C/C++ 关键字 存储类说明符】C/C++ 的mutable 关键字 忽略对该数据成员的常量性检查在const函数中修改变量值
【C/C++ 关键字 存储类说明符】C/C++ 的mutable 关键字 忽略对该数据成员的常量性检查在const函数中修改变量值
28 0
|
26天前
|
设计模式 负载均衡 算法
C/C++发布-订阅者模式世界:揭秘高效编程的秘诀
C/C++发布-订阅者模式世界:揭秘高效编程的秘诀
65 1
|
27天前
|
存储 安全 编译器
C++ std::move以及右值引用全面解析:从基础到实战,掌握现代C++高效编程
C++ std::move以及右值引用全面解析:从基础到实战,掌握现代C++高效编程
76 0
|
27天前
|
JSON 并行计算 API
使用CJSON/Nlohmann:快速简便地在C/C++中处理JSON数据
使用CJSON/Nlohmann:快速简便地在C/C++中处理JSON数据
66 0
|
1月前
|
C++
C++ 数据封装的方法,重点是其编程思想
在C++中,数据封装一般指的是将数据和操作这些数据的函数绑定在一起的程序设计方式。通常使用C++的类来实现
36 7
|
1月前
|
安全 C++
c++数据封装
c++数据封装
16 0