构造函数:在创建对象时执行的函数
特性:
1.构造函数与类名相同
2.构造函数无返回类型(必须没有)
3.创建对象时被调用(类似于初始化)
4.构造函数可以有参数(创建时直接传入)
形如:A();
以下是一个构造函数的例子:
#include <stdio.h>
#include <iostream>
using namespace std;
class A
{
private:
int i; //定义成员变量
public:
void f();
A(); //构造函数的定义
};
void A::f()
{
int j=10; //定义并对局部变量赋值
i=10; //对成员变量赋值
}
//构造函数
A::A()
{
i=0;
cout << "This=" << this << endl;
//在构造函数中输出this指针
//tip:this指针是指向类的地址的一个内部指针
}
int main()
{
A a; //声明一个类A变量a
a.f(); //调用a中的f()函数
return 0;
}
析构函数:在删除对象前执行的函数
定义时与构造函数类似,唯一的差别是在函数前加一个~,而且不能有参数
形如:~A();
以下是一个析构函数的例子:
#include <stdio.h>
#include <iostream>
using namespace std;
class A
{
private:
int i; //定义成员变量
public:
void f();
A(); //定义构造函数
~A(); //定义析构函数
};
void A::f()
{
int j=10; //定义并对局部变量赋值
i=10; //对成员变量赋值
}
A::A()
{
cout << "This class has been created." << endl;
//构造函数创建时调用
}
A::~A()
{
cout << "This class is deleted." << endl;
//析构函数结束时调用
}
int main()
{
{
A a; //声明一个类A变量a
//构造函数将在此调用
a.f(); //调用a中的f()函数
}
//析构函数将在此调用
return 0;
}