C++ 构造函数和析构函数

102 阅读1分钟
#include <iostream>

using namespace std;

/****************************************

        C++ 构造函数和析构函数:

        1. 构造函数在类创建对象时自动调用
        2. 析构函数在类对象销毁时自动调用

*****************************************/

class Fruit{
    public:
        Fruit(){ //构造函数,创建对象时自动调用
            cout << "我是构造函数,创建类对象时会自动调用,我的名字必须和类名相同," <<
                "我不能有返回值,即使是void也不能有,但是我可以有一个或者多个参数!" << endl;
        }
        ~Fruit(){ //前面带~,和名字和类名一样,代表是析构函数
            cout << "我是析构函数,销毁类对象时会自动调用,我的名字必须和类名相同," <<
                "我不能有返回值,即使是void也不能有,我也不能有任何的参数!" << endl;
        }
        string getName();//先声明再实现
        void setName(string n);//先声明再实现
    private:
        string name;  //名字
        double weight;//重量
        string color; //颜色
        int number;   //个数
};//注意分号

string Fruit::getName(){  //::代表 作用域符,Fruit::getName 代表在Fruit类中的getName函数
    return name;
}

void Fruit::setName(string n){
    name = n;
}

int main()
{
    string name;

    Fruit fru; //创建类对象fru,此时会自动调用构造函数

    fru.setName("banana");  //类对象fru调用函数
    name = fru.getName();
    cout << "name = " << name << endl;

    return 0;
} //在作用域结束后,fru对象会销毁掉,此时会自动调用构造函数