10-C++面向对象(构造函数、析构函数)

对象的内存:

        对象的内存可以存在于3种地方

                1、全局区(数据段): 全局变量

                2、栈空间:函数里面的局部变量

                3、堆空间:动态申请内存(malloc、new等)

//全局区
Person g_person;

int main(){
    //栈空间
    Person person;

    //堆空间
    Person *p=new Person;
    return 0;

    //这不是申请对象,这是函数申明
	Person person();
}

构造函数(Constructor)

        构造函数(也叫构造器),在对象创建的时候自动调用,一般用于完成对象的初始化工作

        函数名与类同名,无返回值(void都不能写),可以有参数,可以重载,可以有多个构造函数

        一旦自定义了构造函数,必须用其中一个自定义的构造函数来初始化对象

        通多malloc分配的对象不会调用构造函数

        如果定义了构造函数,除了全局区,其他内存空间的成员变量默认都不会被初始化,需要开            发人员手动初始化

析构函数(Destructor)

        析构函数(也叫析构器),在对象销毁的时候自动调用,一般用于完成对象的清理工作

        函数名以“~”开头,与类同名,无返回值(void都不能写),无参,不可以重载,有且只有一          个析构函数

        通过malloc分配的对象free的时候不会调用构造函数

        构造函数、析构函数要声明为public,才能被外界正常使用

猜你喜欢

转载自blog.csdn.net/qq_56728342/article/details/129661556