笔记:C++ this指针、构造函数、析构函数

本文详细介绍了C++中的this指针,指出其在结构体内作为结构指针使用,特别是在成员变量与参数同名时。还探讨了构造函数,包括其用于初始化对象成员的特性,以及如何处理同名构造函数。同时,文章提到了析构函数,用于在类销毁时执行资源释放。最后,提到了构造函数和析构函数在继承中的执行顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

struct pro

{

        int age;

        int acc;

        pro(int age,int acc)//构造函数特征,与结构体同名。不能有返回值void都不行,类似  _启动子程序  里面的代码是类初始化用的pro就是构造函数. 

        {

                this->age=age;//成员age的值=参数age  this在结构体内,用来当做结构体指针使用,当参数与结构体成员同名时,可以用它指定哪个是结构体成员。

                this->acc=acc;

        }

//创建的构造函数必须要用,如果不想初始化的话,可以在内部再定义一个

pro()这样的话 即使不使用 编译器也不会报错了(主要是报你在使用一个没参数的构造函数,也就是说原本声明的构造函数有参数,pro p;默认你在调用没有参数的构造函数)

pro()

{

}

~pro()//析构函数 相当于 _对象将被销毁() 在构造函数名(与类名相同)前面加一个~符号,用来安全退出“类”

{// 一般作用于类里面有个指针申请了内存空间(堆),在类退出(销毁)的时候需要释放.或者关闭一些类里面用到的.在退出时需要关闭的句柄. 析构函数在类关闭时会被自动调用.析构函数不允许重载只能有一个,不能写返回值。

}

       //this指针返回当前结构体指针。函数写在结构体内部不会影响结构体大小。当前结构体大小还是8字节。

        int GetAddress()//成员函数

             {

                return *(int*)this;  先转成int*  再取它的值.。.this指针不能++,--,不允许直接对this重新赋值.它的作用只是指向结构体首地址

               }

}

构造函数的作用,当我们创建一个对象,给对象里面的变量成员初始化数据用的(初始化对象)

使用方法

类型        变量名

pro           P(1,3) ;这就是调用构造函数,1,3是分别给结构体内部两个成员赋值,当构造函数设为有参数程序时,用这个结构体必须先初始化。因为 pro p;默认是你在调用一个无参构造函数。

或者内部再弄一个同名的构造函数,才可以使用格式: pro p; 来声明变量。

一个结构体内部有多个构造函数,那么它们的关系就是重载。重新载入构造函数.

一个结构体内部有多个同名不同参的 成员函数,那么它们的函数也是重载..重载成员函数..  就是一个名词...- -没多大意义,重载唯一的好处就是可以少起名字。

构造函数与析构函数都不是必须的

在继承时,先运行的是父类的构造函数,其次才是子类的构造函数.(因为继承时,父类被粘贴在头部)

如果父类有构造函数,子类没有.父类的构造函数一样会被执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值