一、什么是成员函数?
要学习类和对象中的六个成员函数,首先需要了解什么是成员函数。
成员函数就是在类里面定义的函数。一般定义在类里面的都称为成员,如果是变量就称为成员变量,如果是函数就称为成员函数。
#include<iostream>
using namespace std;
class A {
public:
// 成员函数
void func() {
cout << "void func()" << endl;
}
private:
// 成员变量
int _a;
};
二、默认成员函数的种类
C++ 的默认成员函数是指没有显式编写该函数时编译器会自动生成的函数。C++ 有六个默认的成员函数,如果我们自己不写,编译器就会自动生成。
六个默认成员函数分为三种,分别是执行初始化、拷贝以及重载功能的函数:
- 执行初始化:构造函数,析构函数
- 执行拷贝:拷贝构造,赋值重载
- 取地址重载:两个重载函数
注意:这六个成员函数中比较重要的是前 4 个,后两个可以作为了解。
三、六个成员函数
3.1 构造函数
构造函数的概念:构造函数是一种特殊的成员函数,用于在创建对象时初始化对象的状态。通常与类名相同,无返回类型,支持重载。
3.2 构造函数的种类和使用
在上面的构造函数中我们看到了几种构造函数的类型:
- 默认构造函数:无参数,如果我们没有显式的写出来,编译器就会自动生成并进行默认初始化。
- 带参的构造函数:带参的构造函数又分为有缺省值和没有缺省值。注意全缺省的构造函数不能与无参的构造函数同时存在,因为这两个函数在调用时会引发冲突。
- 拷贝构造函数,参数是类名,这个我们后面介绍。
class Date {
public:
// 默认构造函数与类名相同,无返回值,支持重载
// 不带参数
Date() {
_year = 1;
_month = 1;
_day = 1;
}
// 一般的构造函数
Date(int year, int month, int day) {
_year = year;
_month = month;
_day = day;
}
{
cout << ->_year << << ->_month << << _day << endl;
}
:
_year;
_month;
_day;
};

