第12章 类 【C++ primer】

本文探讨了C++中如何使用类定义抽象数据类型,包括类的作用域、构造函数及this指针的概念。文中详细解释了成员函数的运作方式,并讨论了const成员函数的特点及其对this指针的影响。
在  C++ 中用类来定义自己的 抽象数据类型 ( abstract data type )

数据抽象能够隐藏对象的内部表示,同时仍然允许执行对象的公有 public 操作。

1, 类作用域
2, 构造函数
3, this 指针

与类有关的三个新特征  : 1), 类作用域 2), 可变成员 3), 静态成员。

构造函数 : 。。。
成员函数 : {
    成员函数有一个附加的隐含实参,将函数绑定到调用函数的对象
    trans.avg_price(); 则在 avg_price() 函数内部对 Sales_item 类成员的引用就是对 trans 成员的引用!
}
double avg_price() const; const 成员不能改变其所操作对象的数据成员。(const 此时必须同时出现在声明与定义中)

struct 与 class 的区别!

在声明和定义处指定 inline 都合法! 类内部定义的默认为 inline

class Screen; 前向声明 (forward declaration)  不完全类型 (incomplete type)

定义类型时,不进行存储分配。 定义对象时 : 进行分配空间!

12.2 隐含的 this 指针
   1, 何时使用 this 指针。
           返回 *this
Screen& Screen::move(index r, index c) {
    index row = r * 5;
    cursor = row + c;
    return *this;
}
   2, 从 const 成员函数返回 *this
     不能从 const 成员函数返回指向类对象的普通引用。const 成员函数只能返回 *this 作为一个 const 引用。
     
     this 的类型是一个指向类类型的 const 指针。
     在 const 成员函数对象里 {
         this 的类型是一个指向 const 类类型对象的 const 指针。
     }
   3, 基于 const 的重载; void get();  void get() const;  const void get() const;
   
   4, 可变数据成员
            mutable 可变数据成员 
private : mutable int count; 
void so() const {
    count++;
}
      这样就可以了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值