C++自学笔记 构造与析构;
构造与析构
类不是实体;对象属于类;函数属于类 ;
用不同的对象调用同一个类里面的函数的时候,函数知道是哪一个对象在调用它
关键字 this
this是一个指针
Point a;
a.print();
<=>等价于
Point::print(&a)
C++在声明一个变量的时候,只是告诉你存在这个变量,并且C++不会提前把变量所在的地方清空。因此变量声明后的值不一定是0。
而同样是OOP 语言的java就会在声明 的时候提前把变量所在的地方清理为0,因此变量声明后的初始值就是0。
对于这种做法,C++的效率更高,因为不用释放内存,这也是C++ 运行高效的原因。
init()函数的用途就是来解决上述问题,
在C++不提前清理的机制下,我们必须主动初始化变量的值。
但是,这个init函数是需要程序员拥有主动意识去写的,主动初始化变量
所以我们使用constructor function 来避免这个问题,
使得一个变量在创建出来之后就被初始化。
constructor (function):构造函数;
申请资源:
在开始时调用
构造函数与类同名;
当你定义了一个类的变量时,就自动使用了构造函数;
但是通常,构造函数是X(int i);
然后在定义变量时是这样:X a(12);
因此12会被传给i;
destructor (function):析构函数:
在结束时调用
释放资源
hello my world
本文来自博客园,作者:slowlydance2me,转载请注明原文链接:https://www.cnblogs.com/slowlydance2me/p/16728343.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了