构造函数 inline
- 格式:docx
- 大小:11.84 KB
- 文档页数:3
构造函数 inline
构造函数是一种用于初始化类的函数,它与类同名,没有返回值类型,可以包含初始化列表和函数体。构造函数在创建一个类的对象时自动调用,用于初始化对象的成员变量。在C++中,构造函数有多种类型,包括默认构造函数、拷贝构造函数、移动构造函数等。本文将从构造函数的特点、分类、语法和使用等方面进行介绍。
一、构造函数的特点
1.构造函数名称必须与类名一致;
2.构造函数无返回值类型声明,包括void;
3.如果没有定义构造函数,则编译器将生成默认构造函数(默认构造函数不执行任何操作,仅分配堆内存);
5.构造函数可以有参数,与一般函数一样,可以有一到多个参数;
6.构造函数可以重载,允许多个函数名称相同但参数个数或类型不同的构造函数存在;
7.类内的静态成员可以在构造函数中初始化。
根据实际需要,C++中的构造函数分为以下几种:
1.默认构造函数(Default Constructor)
默认构造函数是没有参数的构造函数,如果没有显式定义构造函数,则编译器会自动生成默认构造函数。默认构造函数主要用于对象无法初始化的情况,例如声明一个数组时,数组元素采用默认构造函数进行初始化。默认构造函数一般不需要参数,仅仅分配堆内存。
class Student {
public:
Student() {
age = 0;
score = 0;
} // 定义默认构造函数 private:
int age;
int score;
};
参数构造函数是拥有一个或多个参数的构造函数,作用是给对象的成员变量赋初值。参数构造函数可以用来初始化对象,同时可以减少代码量。
拷贝构造函数是创建一个对象副本时自动调用的构造函数,也可以手动调用。拷贝构造函数的参数是同类对象的引用或指针。拷贝构造函数可以通过复制另一个对象的所有成员变量来构造新对象。
移动构造函数是C++11新增的构造函数类型,它可以将一个右值引用的对象移动到新对象中,而无需进行任何拷贝操作,从而提高了程序的效率。
三、构造函数的语法和使用
构造函数的语法与一般函数类似,但它没有返回值类型,可以有初始化列表和函数体。
[访问标识符][类名]([参数列表])
: [初始化列表]
{
// 函数体
}
例如:
其中:
访问标识符:public、protected、private,用于设置成员变量的访问权限,决定了可以访问该函数的作用域。
参数列表:包含一个或多个参数的括号列表。
初始化列表:以冒号开头,包含一个或多个成员变量的初始化语句。
函数体:初始化成员变量或完成其他操作的代码块。
在调用构造函数时,可以使用以下几种方式: (1)默认构造函数不需要传入参数和括号,直接使用类名即可创建对象。例如:
Student s;
(2)参数构造函数需要传入一定数量的参数,参数列表以逗号隔开。例如:
(3)拷贝构造函数需要一个同类对象的引用或指针作为参数,以复制新的对象。例如:
Student s1(18, 80);
Student s2 = Student(s1);
inline是一种C++的函数特性,它可以让程序员将需要重复调用的函数定义在头文件中,实现代码复用的效果。
1.inline的语法
使用关键字inline可以将函数定义为内联函数。内联函数可以通过将函数代码嵌入调用者的代码中,使程序在执行时直接执行嵌入的代码段,从而提高程序的效率。
inline 返回值类型 函数名(参数列表) {函数体}
inline int add(int a, int b) { return a + b; }
(1)在类中使用:将成员函数声明在头文件中,定义在类声明内部,编译时编译器会自动将函数展开成代码。
(2)在头文件中使用:直接将函数定义到头文件中,让其他文件可以使用。
总结