原创
学习C++的日子 第四天 2018年01月01日
类
构造函数 constructor 与 析构函数 destructor
用途:
构造函数 constructor 初始化
特点:生成类的对象的同时,会自动调用构造函数。所以被用于初始化。
相当于以类的名称命名的函数。
析构函数 destructor 破弃生成类的对象时所占用的内存。
构造函数名与类名相同。
析构函数名带有非运算符的类名
////////////////////////////////////////////////////////////////////////////////
//例1
#include
using namespace std;
class myworld
{
char *str;
public:
myworld(); //构造函数
~myworld();//析构函数
void print();
};
myworld::myworld()//构造函数的定义,
{
str = "welcome to myworld";//对str初始化
}
myworld::~myworld()//析构函数的定义,
{
}
void myworld::print()
{
cout << str << endl;
}
int main()
{
myworld obj;
obj.print();
return 0;
}
//特征:
在类的内部 进行宣言,在外部定义。这种用法和类的成员函数的宣言和定义的方法类似。
当然也可以在类的内部进行定义。但为了明确代码制作规则,本人在此并不建议,不做介绍。
因为在生成类的对象时,自动被调用,用于初始化和释放内存,所以并不会像函数一样需要被手动调用。
////////////////////////////////////////////////////////////////////////////////
构造函数的活用
例2
#include
using namespace std;
class myworld
{
int a;
public:
myworld(int b);
~myworld();
void print();
};
myworld::myworld(int b) //定义值参
{
a = b;
}
myworld::~myworld()
{
}
void myworld::print()
{
cout << a << endl;
}
int main()
{
myworld obj(123);//值参代入实际的数值。
obj.print();
return 0;
}
特点:
向类的对象直接代入值,因为生成类的对象时,就会自动调用构造函数,对代入的值进行处理。
因为类似于对函数代入值,自然也可以定义多个值参。
用户1724505 2019-6-10 17:51
二不过三 2019-1-2 09:54