C++primer难点之类

逃离我推掉我的手 2022-08-25 12:47 260阅读 0赞

类的难点解析:

类三大特性:继承,多态,封装

访问权限控制:public private protect

Inline成员函数:1 在类内部定义的成员函数,将自动被作为inline处理

  1. 2 如果是显示声明inline 即不放在类定义体内,该函数定义应该放在.hl文件里,因为它对于使用它的,cpp文件要可见,仅仅声明是不够的。
  2. 3 inline关键字的指定既可以在类里面声明时指定也可以在类外面定义指定。

4 定义lnline函数有3中方法。

不完全类型:如果该类是不完全的,则其数据成员只能是指向此类的指针或引用。

  1. Class Note

{ int a; Note *pte; Note &pte};

  1. 编程常见例题:定义两个类 XYX中有一个指向Y的指针,Y中有一个X类型的对象。
  2. Class Y; Class X\{Y \* py\}Class Y\{X objx; \}

This 指针:百年避不开的话题 :何时需要用到this呢?

  1. 当我们需要将一个对象作为整体引用时:就需要
  2. Screen& Screen::move(int x)
  3. \{
  4. Return \*this;

}

这样之后可以通过move函数获取对象其他的成员:obj.move().move();

Const函数:const对象只能使用const成员 ,给予const关于指针和引用可以重载。

  1. Const成员函数等价于constthis 常量成员函数

类的作用域:

l 函数的返回类型不一定在类的作用域中详情看C++primer第四版 P381

类作用域的名字查找顺序:1 先检查成员函数局部作用域中的声明:注意函数参数的声明

  1. 2检查所有类成员的声明
  2. 3检查此成员函数定义前的作用域 例如全局变量
  3. 如果函数中的成员变量被参数屏蔽,可以通过this等手段引用

构造函数:1构造函数: 由于常量构造函数的缘故所以不需要Const构造函数。

  1. 2初始化列表:初始化顺序是以类中声明的为主。
  2. 3不带参数的构造函数与只有一个参数的构造函数(但是有默认实参)导致默认构造函数有歧义

Static类成员:不是类对象的组成部分

  1. ** Static成员函数**:不能声明为Const也不能声明为虚函数,没有this指针。

Static数据成员:必须在定义体的外部定义并且初始化,且关键字static只能在类中声明,但是有一个例外const static 数据成员可以在类的定义体中初始化,但是其任然需要在类的定义体外面定义但是此时可以不提供初始值,另外static数据成员可以做默认实参。

个人意见,有不对的地方欢迎指出

发表评论

表情:
评论列表 (有 0 条评论,260人围观)

还没有评论,来说两句吧...

相关阅读

    相关 项目难点

    关系图谱绘制 头部,侧边栏组件全局公用 oss直传 钉钉接入 \\1. 基于 Ice CLI搭建应用环境 \\2. 利用 状态管理store多个微应用之间实现数据共享

    相关 PHP基础之类

    面向对象编程就是要把需要解决的问题抽象为类。关于面向对象的思想我想大家都应该在其他语言中或多或少了解过。简单来说就是将事物具有的共性抽出来作为类的属性, 与属性相关的操作作为

    相关 Java基础之类

    > 类这个级别的知识点有很多,我在刷牛客网的时候碰到了诸如接口和抽象类的区别,接口,抽象类,内部类的修饰符如何使用以及他们的访问控制权限如何使用等问题。总体来说,此基础考点在平