- 构造函数与析构函数作用:
构造函数——用于在创建对象为对象成员属性赋值,构造函数由编译器自动调用,无需手动调用;
析构函数——用于对象销毁前系统自动调用,执行一些清理工作;
- 构造函数语法:——没有返回值、可以有/无参数、函数名与类名相同;
语法格式: 类名 () {}
a)不含参数的构造函数
class mydata
{
public:
int a;
float b;
mydata()
{
a = 1;
b = 3.14f;
cout << "Beginning..." << endl;
}
};
b)含有参数的构造函数
class mydata
{
public:
int a;
float b;
mydata(int aa, float bb)
{
a = aa;
b = bb;
cout << "Beginning..." << endl;
}
};
- 初始化列表构造函数:
语法格式:类名():变量名1(数值),变量名2(数值){ }
a)传递参数的初始化列表构造函数
class mydata
{
public:
mydata(int aa, float bb, string cc) :_a(aa), _b(bb), _c(cc)
{
}
void show()
{
cout << _a << endl;
cout << _b << endl;
cout << _c << endl;
}
private:
int _a;
float _b;
string _c;
};
a)a)——涉及指针的初始化列表
#define NULL 0
//定义链表结构体
struct ListNode
{
int val;
ListNode* next;
ListNode(int x):val(x),next(NULL) {};
};
b) 不传递参数的初始化列表构造函数
class mydata
{
public:
mydata() :_a(1), _b(3.14f), _c("we are csdn")
{
}
void show()
{
cout << _a << endl;
cout << _b << endl;
cout << _c << endl;
}
private:
int _a;
float _b;
string _c;
};



