C++ 构造函数和析构函数
//构造函数和析构函数
#include <iostream>
#include <string>
using namespace std;
class Student
{
private:
int age;
int x,y;
public:
Student()
{
/*构造函数,名称与类名相同,且没有任何返回类型构造函数可以有多个,但是他们的名称必须与类名相同
里面的参数不同,一个类里面,当不给予构造函数的话,则会默认产生一个构造函数
类名(){}
这是为了能够在创建类对象的时候可以顺利的构造对象。
构造函数可以有缺省参数。
但是当我们创建了构造函数时,就不会有默认的构造函数。
合理的运用构造函数,可以很好的对类对象进行初始化操作*/
this->age = 0;
x = 0;
y = 0;
std::cout<<"这是编写的默认构造函数:"<<"age = "<<age<<"x = "<<x<<"y = "<<y<<std::endl;
}
Student(int a)
{
this->age = a;
x = 0;
y = 0;
std::cout<<"这是编写一个参数构造函数:"<<"age = "<<age<<"x = "<<x<<"y = "<<y<<std::endl;
}
void inti(int a, int b, int c)
{
age = a;
x = b;
y = c;
std::cout<<"这是编写初始化函数:"<<"age = "<<age<<" x = "<<x<<" y = "<<y<<std::endl;
}
~Student()
{
/*这个函数为析构函数,与构造函数是相对而言的,~为“非”运算符。
* 析构函数与构造函数类似,也有默认的析构函数。析构函数不需要任何参数,名称同样是与类名完全相同形式如下:
~类型名()
{}
一个类有且仅有一个析构函数,在对象进行注销时,系统自动调用析构函数。
*/
cout<<"析构函数完成"<<endl;
}
};
int main(int argc, char *argv[])
{
Student st1;
Student st();//这样写的含义是创建一个函数,其返回类型为Student的返回类型,与上一行的构造函数是不同的
Student st2(3);
Student st3;
st3.inti(10,20,30);
return 0;
}