构造函数和析构函数的理解
1.构造函数的定义为:类+(形参){函数体}
作用:在定义对象时给私有的数据成员定义一个初始值,因为类是一个抽象的数据类型,和平时的int,float类型
一样要进行初始化之后才可以使用;
其中如果没有在你定义的类中定义一个构造函数,则系统会自动调用什么都不操作的默认构造函数;
2.如果你定义了构造函数,则系统不会调用默认的构造函数给你,比如
#include<iostream>
using namespace std;
class Man{
int a,b;
public:
Man(int x,int y=1);
void printab(){cout<<a<<" "<<b<<endl;}
};
Man::Man(int x,int y)
{
a=x;
b=y;
}
int main()
{
Man man(1,3);//这样是对的
Man man; //错的
man.printab();
return 0;
}
定义了这个,但是是你在初始化man这个对象时,你改成这样子定义Man man;则系统会报错,提示你没有构造函数(参数值不对),
因为系统只会调用你当前的这些构造成员函数了。
3.如果构造函数是定义在类的外面的,则构造函数定义的默认参数只能可以在类的内外中申明,但是最好放在
类内声明,因为一般对象调用成员函数时掉用的方便;不可以在申明构造函数时用,在类外定义时也用,这样会报错;
析构函数:
1.改函数主要是在销毁对象前用的,但不是用这个函数销毁对象,而是进行对对象的一些操作,比如说
动态分配了内存(new 类),则要用delete释放掉内存;析构函数如果你不要用它干什么,可以不定义的。