我们用构造函数的目的?
是希望对象被创建的时候利用特定的值构造对象,将对象初始化为一个特定状态。
需要说明的是:
构造函数也是类的一种成员函数,只不过它有些特殊罢了。构造函数的函数名必须与类名相同,并且没有返回值。构造函数一般被声明为共有函数。
当类中有了共有函数的时候,编译器在类被创建的时候自动插入对构造函数调用的代码。即对象一旦创建,构造函数就被调用。
即使类中没有写构造函数,编译器也会自动生成一个构造函数隐含的默认构造函数,该构造函数的参数和函数体皆为空。若有了定义的构造函数将不会生成默认的构造函数。
class Life
{
public:
Life() {};//无参数列表无函数体的构造函数
Life(int myEat, int myDrink, int mySleep, int myShit);
//有参数的构造函数
~Life();
//虚构函数
private:
int eat,drink,sleep,shit;
};
//构造函数无返回值,函数名与类名相同
//构造函数可以访问类的所有数据成员,包括内联函数,参数列表。
//构造函数可以带参数列表,可以带默认的形参值,可以重载
Life::Life(int myEat, int myDrink, int mySleep, int myShit)
{
eat = myEat;
drink = myDrink;
sleep = mySleep;
shit = myShit;
}
Life::~Life()
{
}
int main()
{
Life otherLife(); //调用无形参的构造函数
Life myLife(6,6,6,6); //调用有参数的构造函数
}