C++从入门到入土第五篇:类与对象(下篇)

Posted 李憨憨_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++从入门到入土第五篇:类与对象(下篇)相关的知识,希望对你有一定的参考价值。

类与对象(下篇)



再谈构造函数

构造函数体赋值


构造函数内的语句只能将其称之为给对象赋初值,而不能将其称之为初始化,因为初始化只能初始化一次,而在构造函数中可以多次赋值;

初始化列表


虽然在这里我们不显式的去写初始化列表,本身在语法上也不会有什么错误,但还是建议将初始化卸载初始化列表中,而不是构造函数体内部;
但有几种情况是必须要写初始化列表的;

引用成员变量

const成员变量

自定义类型成员

成员变量在类中声明次序就是其在初始化列表中的初始化顺序,与其在初始化列表中的先后次序无关

单参构造隐式类型转换



可以加上explicit关键字将这种隐式类型转换屏蔽掉;

static 成员

假如我们要创建一个类,计算程序中创建出了多少个类对象
因为这里每创建出一个类对象都会调用一次类的构造函数,所以我们可以创建一个计数器,每调用一次构造函数就让计数器加一,但是如果我们使用全局变量的话值容易被修改,所以我们考虑使用static

普通成员函数包含this指针,static成员函数不包含this指针
this指针的意义:指向当前调用此函数的对象
static成员函数因为没有this指针所以不能调用非static成员函数

友元

友元分为友元函数和友元类

友元函数

友元类

友元类的关系是单向的;
友元类中的所有函数变成另一个类的友元函数;

以上是关于C++从入门到入土第五篇:类与对象(下篇)的主要内容,如果未能解决你的问题,请参考以下文章

C++从入门到入土第四篇:类与对象(中篇)

C++从入门到入土第十八篇:多态

C++从入门到入土第十八篇:多态

C++从入门到入土第十五篇:list的模拟实现

JS正则表达式从入门到入土—— 预定义类与边界

类与对象(下篇)