Cpp学习笔记四

C++学习笔记四

一览:

  1. 自动对象、静态局部对象
  2. 内联函数
  3. 类的成员函数、构造函数

自动对象、静态局部对象

自动对象:只有当定义它的函数被调用时才存在的对象称之为自动对象
自动对象,包括形参,都在定义它们的块语句结束时撤销

静态局部对象:就是C语言里面的static变量

内联函数

使用方法:加上inline关键字

优点:避免函数调用产生的开销
内联函数应当在头文件中定义

缺点:不好debug

成员函数

成员函数的函数原型必须在类中定义
成员函数的函数体既可以在类中定义也可以在类外定义

成员函数的定义

类的所有成员必须在类定义的花括号里面声明,此后不能再添加任何的成员(静态类型的语言)
编译器隐式地将类内定义的成员函数当作內联函数

类的成员函数可以访问该类的private成员

this指针

每个成员函数都有一个额外的、隐含的this指针
它将初始化为调用函数的对象的地址

使用:
成员函数中不必显式地使用this指针来访问成员
this->something == something

const成员函数

形式:将隐含的this指针修改为const类型的

bool CLASS::func(const CALSS *const this, ...)

常量成员函数:不能修改调用该函数的对象=>只能读取,不能修改

类外定义成员函数

类外定义的成员函数必须指明它们是类的成员

type CLASS::func(...)
{
    
    
	...
}

构造函数

构造函数是特殊的成员函数
构造函数与成员函数同名,没有返回类型
一个类可以有多个构造函数

默认构造函数没有显式形参

构造函数的定义

同样的,必须在类中定义,但是也可以在类中或者类外定义。

  • 构造函数的初始化列表:
    在冒号和花括号之间的代码称之为构造函数的初始化列表
    这个初始化列表为类的一个或者多个数据成员指定初值

默认构造函数

若没有为一个类显示定义任何构造函数,编译器将生成默认构造函数
合成的默认构造函数不会自动初始化内置类型的成员

猜你喜欢

转载自blog.csdn.net/weixin_45206746/article/details/114035460