原创 莫影 C语言编程基础 2020-08-27

收录于话题

#编程

3889个

10段代码助你习得C++特殊成员_c++

10段代码助你习得C++特殊成员_c++_02前言

上一章节主要是详细介绍了类的组合。不清楚的可以回顾一下哦。本章节主要针对于C++中的特殊成员做一个详细介绍。

10段代码助你习得C++特殊成员_c++_02类的特殊成员

类的特殊成员:

  1. const成员

  2. static成员

10段代码助你习得C++特殊成员_c++_02

const成员

const数据成员

1.必须采用初始化参数列表做初始化,即:

类名::类名(形参表):对象1(参数),对象2(参数)……

2.const数据成员只能被使用,不能被修改,即常属性

如下测试代码:

10段代码助你习得C++特殊成员_c++_05

const成员函数

用const修饰的函数叫做常成员函数,注意点:

  1. const 修饰词写在修饰函数的后面

  2. 常成员函数不能修改数据成员

10段代码助你习得C++特殊成员_c++_06

10段代码助你习得C++特殊成员_c++_02常对象

用const修饰的对象,我们称之为常对象 ,对于常对象只能调用常成员函数,切记切记!!如下代码:

10段代码助你习得C++特殊成员_c++_08

当类中存在普通函数和常成员函数时 ,普通对象优先调用普通函数,常对象只能调用常成员函数。

static成员

static数据成员


static数据成员:使用static修饰的数据成员

  1. 静态数据成员须在类外初始化,类外时不需要static

  2. 静态数据成员不属于对象,它的访问可以不需要对象

  3. 静态数据成员属于类故依旧受权限限定词限定

  4. 静态数据成员的调用要用类名::限定


上述代码之所以报错,因为受权限限定,改为public即可成功运行,如下代码:

当然static数据成员时具有static变量的属性,能够记录上一次的执行结果,只做一次初始化,如下下程序:


static成员函数

static成员函数:使用static修饰的成员函数

  1. 静态函数在类外实现时不需要static

  2. 静态函数不属于对象,它的访问可以不需要对象

  3. 静态函数属于类故依旧受权限限定词限定

  4. 静态函数的调用要用类名::限定

静态成员与普通成员的交互

因为静态数据成员的访问不要对象,所以当静态函数调用非静态数据成员时需要指定对象,指定对象的方式主要有三种:

  1. 静态成员函数以对象指针为参数

  2. 静态成员函数以对象为参数

  3. 在静态函数中产生对象

10段代码助你习得C++特殊成员_c++_09

对于静态函数调用静态数据成员则可以不需要这么麻烦,因为两者都可以不需要对象即可访问,

如下代码:

10段代码助你习得C++特殊成员_c++_10

而对于对象来说可以像普通函数一样调用静态成员,当然权限一定是public属性,如下代码:

10段代码助你习得C++特殊成员_c++_11


10段代码助你习得C++特殊成员_c++_02尾言

本节课就到这里了,本章节作业: 用C++特殊成员封装一个注册类,能自动记录目前注册用户数,并且每一个用户有且只有唯一的一个编号。