文章目录
C++编程语言学习易忘知识点整理
一、 类
1.1 C++类访问修饰符
- public 类外可以通过
.
访问 - private 只有类和友元函数可以访问,默认设置
- protect 派生类(即子类)可以访问
1.2 类成员函数
除了可以定义在类定义内部,还可以通过::
定义在类外
<返回类型> <类名>::<函数名>(函数参数列表)
{
<函数体>
}
1.3 构造函数&析构函数
- 构造函数
每次创建类的新对象时执行
构造函数的名称与类的名称完全相同,并且不会返回任何类型,也不会返回void,可用于为某些成员变量设置初始值。默认是不带参数的。也可以带参数用来初始化变量。
Tips:构造函数后加冒号是初始化表达式,主要有以下四种情况:
1、初始化const成员;
2、初始化引用成员;
3、当调用基类的构造函数,而它拥有一组参数时;
4、当调用成员类的构造函数,而它拥有一组参数时。
这样主要是为了有的数据成员需要在构造函数调用之后,函数体执行之前就想进行初始化,如引用数据成员、常量数据成员和对象数据成员。
冒号初始化是给数据成员分配内存空间时就进行初始化,也就是说分配一个数据成员只要冒号后有此数据成员的赋值表达式(这个表达式必须是括号赋值表达式),那么分配了内存空间后在进入函数体之前给数据成员赋值。
- 析构函数
每次删除所创建的对象时执行
析构函数的名称与类的名称完全相同,只是在前面加了~
波浪号作为前缀,没有返回值,也不带任何参数,一般用于跳出程序前释放资源。
1.4 拷贝构造函数
在创建对象时,使用同一类中之前创建的对象来初始化所创建的对象,通常用于:
- 通过使用另一个同类型的对象来初始化新创建的对象;
- 复制对象把它作为参数传递给函数;
- 复制对象,并从函数返回这个对象。
如果在类中没有定义拷贝构造函数,编译器会自行定义一个。如果类带有指针变量,并有动态内存分配,则它必须有一个拷贝构造函数。拷贝构造函数的最常见形式如下:
classname (const classname &obj) { // obj 是一个对象引用,该对象是用于初始化另一个对象
// 构造函数的主体
}
1.5 友元函数
定义在类外部,但可以访问私有成员和保护成员,不是一个成员函数。友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类,在这种情况下,整个类及其所有成员都是友元。
- 定义方式
如果要声明函数为一个类的友元,需要在类定义中该函数原型前使用关键字friend
,如下所示:
class Box
{
double width;
public:
double length;
friend void printWidth( Box box ); // 声明友元函数
friend class ClassTwo; // 声明ClassTwo的所有成员函数作为类Box的友元
void setWidth( double wid );
};
1.6 内联函数
通常与类一起使用,如果一个函数时内联函数,在编译的时候,编译器会把这个函数的代码副本放置在每一个调用该函数的地方。对内联函