笔记8 《C++大学教程》

来源:互联网 发布:如何制作游戏 知乎 编辑:程序博客网 时间:2024/06/01 07:59

第九、第十章 类的深入剖析

预处理器指令#ifndefendlif 来阻止重复包含一个头文件。

在类的体中,类的数据成员不能在声明时初始化(初了static const数据成员),推荐在类的构造函数中初始化

即使声明在类的定义内的成员函数在类定义的外部定义(使用二元作用域分辨运算符绑定到该类::),这样的成员函数仍在类的作用域之内

如果成员函数在类的定义体内定义,则C++编译器将试图内联调用该成员函数

包含类对象作为其他类的成员称为组成

在类作用于内,类成员可以被该类所有成员函数直接访问

类的成员函数可以被重载,但只能由该类的其他成员函数重载

圆点成员选择运算符(.)前加上对象名称或对象的引用可访问对象的public成员

箭头成员选择运算符(->)前加上指向对象的指针,可访问对象的public

工具函数是支持类的public成员函数操作的private成员函数,可以被类的友元函数是使用

构造函数可以指定默认实参,当类的对象撤销时,类的析构函数被隐式的调用

析构函数的名字是发音字符(~)后接类的名字,析构函数实际上并不释放对象的存储空间,它在系统回收对象的内存之前执行扫尾工作,不接受参数,也不返回任何值,且一个类只能有一个析构函数,编译器默认提供一个‘空的’析构函数

一般而言析构函数的调用顺序和构造函数的调用顺序相反

赋值运算符可以将一个对象赋给另一个同类型的对象。默认情况下,这样的赋值通过逐个成员赋值的方式进行

对象可以作为函数的实参进行传递,也可由函数返回。默认按值传递,C++创建一个新对象,并使用拷贝构造函数将原始对象的值赋值到新的对象中。

编辑器给每个类提供一个默认的拷贝构造函数

C++编译器不允许const对象调用非const成员函数

const对象必须被初始化而不是被赋值

const数据成员和引用的数据成员必须使用成员初始化其进行初始化

构造函数和析构函数不可以声明为const

类的friend函数在类的作用域以外被定义,却具有访问类的非public(以及public)成员的权限。单独的函数或整个类都可以声明为另一个类的友元。友元声明可以出现在类的任何地方。友元关系既不是对称的也不是传递的。

每个对象都可以通过this指针访问自己的地址

new运算符为对象分配大小合适的存储空间,运行对象的构造函数并返回正确类型的指针

要撤销一个动态分配对象并释放这个对象占用的存储空间必须使用delete运算符

当没有任何类的对象存在时,类的static成员依然存在

类的public static成员可以通过类的任何对象访问

static态成员函数不具有this指针

队列中的元素以先进先出

容器类是为保存一组对象而设计的类

迭代器是“遍历”集合的对象,返回集合中下一个元素

原创粉丝点击