本节书摘来自异步社区出版社《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;
// 也许还包含其他私有成员函数,此处略去
};```