• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

connect the dots

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

《C++ Primer》 第12章 类

1.类是C++最重要的特征。 类就是定义了新的类型和作用域。类背后的思想是数据抽象和封装。

  class X{...}; //类的定义

2.C++中,使用访问标号来定义类的抽象接口和实施封装。

  public 构成了类对象的公用界面,程序所有部分可以访问public成员;

  private 封装了类型的实现细节,非成员函数不可以访问。

3.成员函数可以被重载;在类内部定义的成员函数,自动作为inline处理,即被调用时,编译器将试图在一行内扩展该函数。不在类定义体内定义的inline成员函数,其定义通常应放在有类定义的同一头文件中。

4.将类的定义放在头文件中,可以保证在每个使用类的文件中以同样的方式定义类。

  class X; //类的声明

5.在类的声明之后,定义之前,类X是一个不完全类型(incompete type),即已知X类型,不知道包含哪些成员。

  不完全类型,不能定义对象,只能定义指向该类型的指针和引用,或用于使用作为函数返回类型和形参。

6.定义类对象时,为其分配存储空间。

   X x1;//类对象定义

  类定义以分号结束,是因为类定义之后可以接一个对象定义列表。

  class X{} x1,x2,...; //通常不将对象定义在类定义之后。

7.成员函数具有一个附加的隐形形参,即指向该类对象的一个指针this,与调用成员函数的对象绑定在一起。

  this指针的使用情况是,该函数返回对调用函数的对象的引用。

  class X{

    public:

      X& move(); // 该函数返回 X& 表明该函数返回指向自身类对象的引用。

  } 

8.在普通的非const成员函数中,this是指向类类型的const指针。即可以改变this所指向的对象的值,但不能改变this所保存的地址。const指针值不能修改,意味着不能使其指向其他对象; //int *const ival。 能否使用该指针修改其所指向的对象的值,则完全取决于其所指向的对象的类型。

9.在const成员函数中,this指针的类型是 指向const对象的const指针,即:既不能通过this改变所指向的对象,也不能改变this所指向的对象,即this保存的地址。

10.基于成员函数是否为const,可以重载成员函数;同样,基于一个指针形参是否指向const,也可以重载函数。

11.类的const成员只能使用const成员函数, 非const成员则都可以使用,但非const版本是一个更好的匹配。

12.将可以修改的数据成员 声明为mutable。

未完...

类的作用域

posted on 2011-08-02 22:35  nimo299  阅读(281)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3