1.构造函数
类的数据成员不能在声明类时初始化,为了解决这个问题,C++提供了构造函数(constructor)来处理对象的初始化。
构造函数特点:
1->函数名和类名相同。
2->无返回值,没有类型。(实际返回当前对象的引用)
3->构造函数不需要用户调用,也不能被用户调用,只会在新的对象被创建时,由编译器自动调用,且在对象的生命周期内仅调用一次,以保证每个数据成员都有一个合适的初始值。
4->有初始化列表(可以不用,只有构造函数有初始化列表)。
5->构造函数可以重载,实参决定调用哪个构造函数。
6->如果没有显示定义,系统会提供一个默认的构造函数。
7->无参构造函数和带有缺省值的构造函数都被认为是缺省构造函数,而且缺省构造函数只能有一个。
8->构造函数不能用const和volatile来修饰。
eg:
#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
class Data
{
public: // 类内定义构造函数
Data() //定义构造成员函数,函数名与类名相同
{
year = 0; //利用构造函数对对象中的数据成员赋初值
month = 0;
day = 0;
}
void set_data(); //函数声明
void show_data();
private:
int year;
int month;
int day;
};
void Data::set_data()
{
cin >> year;
cin >> month;
cin >> day;
}
void Data::show_data()
{
cout <&