《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;
   // 也许还包含其他私有成员函数,此处略去
};```
相关文章
|
1月前
|
安全 程序员 编译器
【C++篇】继承之韵:解构编程奥义,领略面向对象的至高法则
【C++篇】继承之韵:解构编程奥义,领略面向对象的至高法则
79 11
|
2月前
|
存储 安全 编译器
【C++核心】一文理解C++面向对象(超级详细!)
这篇文章详细讲解了C++面向对象的核心概念,包括类和对象、封装、继承、多态等。
25 2
|
1月前
|
存储 编译器 C语言
【C++】初识面向对象:类与对象详解
【C++】初识面向对象:类与对象详解
|
3月前
|
存储 C++
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
|
3月前
|
存储 算法 C++
C++ STL应用宝典:高效处理数据的艺术与实战技巧大揭秘!
【8月更文挑战第22天】C++ STL(标准模板库)是一组高效的数据结构与算法集合,极大提升编程效率与代码可读性。它包括容器、迭代器、算法等组件。例如,统计文本中单词频率可用`std::map`和`std::ifstream`实现;对数据排序及找极值则可通过`std::vector`结合`std::sort`、`std::min/max_element`完成;而快速查找字符串则适合使用`std::set`配合其内置的`find`方法。这些示例展示了STL的强大功能,有助于编写简洁高效的代码。
47 2
|
3月前
|
编译器 C++
virtual类的使用方法问题之C++类中的非静态数据成员是进行内存对齐的如何解决
virtual类的使用方法问题之C++类中的非静态数据成员是进行内存对齐的如何解决
|
3月前
|
存储 数据挖掘 C语言
【C/C++】C/C++车辆交通违章管理系统(源码+数据文件)【独一无二】
【C/C++】C/C++车辆交通违章管理系统(源码+数据文件)【独一无二】
|
3月前
|
存储 安全 数据处理
【C++】C++ 超市会员卡管理系统(面向对象)(源码+数据)【独一无二】
【C++】C++ 超市会员卡管理系统(面向对象)(源码+数据)【独一无二】
|
4月前
|
存储 C++ 容器
开发与运维数组问题之C++标准库中提供数据容器作为数组的替代如何解决
开发与运维数组问题之C++标准库中提供数据容器作为数组的替代如何解决
54 5
|
4月前
|
设计模式 监控 Go
开发与运维C++问题之C++部分原有的数据发送能力如何解决
开发与运维C++问题之C++部分原有的数据发送能力如何解决
26 1