首页 > 编程语言 >C++自学笔记 构造与析构;

C++自学笔记 构造与析构;

时间:2022-09-25 17:45:13浏览次数:50  
标签:function 函数 与析构 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):析构函数:

在结束时调用

释放资源

 

标签:function,函数,与析构,C++,自学,构造函数,变量
From: https://www.cnblogs.com/slowlydance2me/p/16728343.html

相关文章

  • 【以练促学】(C++基础语法)字符串篇
    (持续刷题持续更新...) 1.读取字符串cin>>arr;//输入字符串时,遇到空格或回车就会停止2. 读含空格字符串的3种方法:fgets(arr,100,stdin);cin.getline(arr,10......
  • C++ 引用注意的问题
    引用的对象不存在#include<iostream>usingnamespacestd;classA{public:A(intx){this->x=x;}~A(){};intget_x(){returnx;}private......
  • 【代码片段】Qt6.2.4 C++ 打开外部 CMD 窗口
    转载https://blog.csdn.net/fuhuixin7497/article/details/85126799正文打开了一个外部CMD窗口,并且主程序推出后该窗口不会关闭voidMainWindow::on_allPathCmdBtn......
  • C++ 避坑指南
    主要预防比赛时抱灵……可以用sizeprogram.exe来查看代码中的静态空间大小,能有效避免\(\text{MLE}\)的发生。在打完代码需要时刻注意题目中是否要开longlong,......
  • 我学习 C++ 运行时多态性的方法
    我学习C++运行时多态性的方法我的简短故事与实施原因。我希望你能明白我做了什么。我创建了一个设计文档。这有望帮助其他人理解我的解决方案。这是链接到员工工厂源代......
  • C++ bitset
    bitset可以更快的求大量位的表示和运算两个bitset<n>之间可以直接做与或非异或操作同时也可以使用set、count等位操作操作方法:1、https://blog.csdn.net/JAN6055/arti......
  • c++基础入门自学笔记总结3---结构体
    卷首闲言碎语:大风起兮云飞扬,又到周末兮打卡辽~不过这周并没有学到什么,就学习了结构体,不过学完结构体后c++的学习之旅就要暂时告一段落了,因为这几天也是在忙活于社团还有RM......
  • 【代码片段】Qt6.2.4 C++ 退出应用程序方式
    转载https://blog.csdn.net/kidults/article/details/78549336正文触发析构函数方式//这种方式不会触发析构函数QApplication::exit(0);不触发析构函数方式(直接......
  • C++源码压缩程序
    C++源码压缩程序一、必做内容:(一)压缩器1.为了提高C++源程序的可读性,C++程序在书写过程中加入了空行、空格、缩进、注释等。假设你想牺牲可读性,以节省磁盘空间,那么你可以......
  • 「浙江理工大学ACM入队200题系列」问题 E: 零基础学C/C++78——求奇数的乘积
    本题是浙江理工大学ACM入队200题第七套中的E题(大概)我们先来看一下这题的题面.题面输入输入数据包含多个测试实例,每个测试实例占一行,每行的第一个数为n,表示本组数据......