析构函数和餐巾纸的关系

2023-10-14 11:20
文章标签 函数 关系 析构 餐巾纸

本文主要是介绍析构函数和餐巾纸的关系,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天晚上回学校食堂吃饭,很是happy地搞了一盆麻辣香锅。忍住了向边上吃经济菜的白富美搭讪的想法,顿时有种变身高富帅的自豪。GC不在这个。。。

话说吃完饭,端起餐盘,顺便看了看边上白富美一眼,这才走向回收站,很是悠哉的将餐盘放上了残食台上。本来该好好地结束这次晚餐,可是,尼玛!

老子的手上被粘上了一坨油!

一坨油!

T_9Q[S81%ER8ZD_73$_%A@3

它在老子手上,像一坨翔一样让我恶心,我只好取出另外一张餐巾纸,将其弄掉。

 

尼玛,细细一想,餐巾纸真是神器。我以前一直有一个想法。若把在食堂吃饭当做类对象规则,那么,去阿姨那打饭就相当于构造函数,将餐盘送回就相当于析构函数。但是,这里面明显错误了。

若是我在送餐盘这个过程中不小心在手上粘上了一坨油。

那尼玛就是在析构函数中抛出了异常。

编译器会第二次调用析构函数吗?

NXM)[YV8[X)89})N%)_H0{4

你以为你爸是李刚呢。

所以,脏的餐盘洗干净才是构造函数,这是在给食物(资源)分配地盘。而从大妈那搞到食物,仅仅是你打开若干文件描述符,为将来使用资源做准备而已。而送回餐盘,就相当于关闭若干个文件描述符。而析构函数,是使用餐巾纸这个显式过程和洗餐盘这个隐式过程。

为什么说使用餐巾纸是显式过程呢。是因为哥看到有些哥们不用餐巾纸。。。这就是不定义析构函数。

但洗餐盘又是必须的,所以,不管你有没有用餐巾纸,这些事情都会有人去干的。

同理,不论你有没有定义析构,编译器总会为你搞上一些动作的。比如,释放内存。

OK,现在来说恶心的异常情况,那就是在回收餐盘时候不小心手上沾了一坨翔这种恶心的东西。

 

尼玛。如果你说你不管它,或者随便在衣服上擦干净了,老子就服了你了。

关闭文件描述符等资源。总会不小心沾惹异常。就像再小心,送餐盘的时候总会粘上点东西。

俗话说:常在河边站哪有不湿手。

你要是先把餐巾纸丢了,或者说先调用了析构,那你就爽了,这个异常,这坨翔会让你恶心到极点。

你若是不管它,你这手也比想干啥了。

你若是随便在衣服上擦,你整个人都恶心了。也就是说,整个系统就恶心了。

 

所以,骚年,哥用切身经验告诉你,一定要最后丢餐巾纸。

也就是说,有异常这种事情,一定要在析构之前干完。

好吧。就到这了。说得好恶心。

转载于:https://www.cnblogs.com/feilonge/archive/2012/12/10/2812016.html

这篇关于析构函数和餐巾纸的关系的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/210153

相关文章

MySQL高级查询之JOIN、子查询、窗口函数实际案例

《MySQL高级查询之JOIN、子查询、窗口函数实际案例》:本文主要介绍MySQL高级查询之JOIN、子查询、窗口函数实际案例的相关资料,JOIN用于多表关联查询,子查询用于数据筛选和过滤,窗口函... 目录前言1. JOIN(连接查询)1.1 内连接(INNER JOIN)1.2 左连接(LEFT JOI

MySQL中FIND_IN_SET函数与INSTR函数用法解析

《MySQL中FIND_IN_SET函数与INSTR函数用法解析》:本文主要介绍MySQL中FIND_IN_SET函数与INSTR函数用法解析,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一... 目录一、功能定义与语法1、FIND_IN_SET函数2、INSTR函数二、本质区别对比三、实际场景案例分

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序

C语言函数递归实际应用举例详解

《C语言函数递归实际应用举例详解》程序调用自身的编程技巧称为递归,递归做为一种算法在程序设计语言中广泛应用,:本文主要介绍C语言函数递归实际应用举例的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录前言一、递归的概念与思想二、递归的限制条件 三、递归的实际应用举例(一)求 n 的阶乘(二)顺序打印

C/C++错误信息处理的常见方法及函数

《C/C++错误信息处理的常见方法及函数》C/C++是两种广泛使用的编程语言,特别是在系统编程、嵌入式开发以及高性能计算领域,:本文主要介绍C/C++错误信息处理的常见方法及函数,文中通过代码介绍... 目录前言1. errno 和 perror()示例:2. strerror()示例:3. perror(

Kotlin 作用域函数apply、let、run、with、also使用指南

《Kotlin作用域函数apply、let、run、with、also使用指南》在Kotlin开发中,作用域函数(ScopeFunctions)是一组能让代码更简洁、更函数式的高阶函数,本文将... 目录一、引言:为什么需要作用域函数?二、作用域函China编程数详解1. apply:对象配置的 “流式构建器”最

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

C++中::SHCreateDirectoryEx函数使用方法

《C++中::SHCreateDirectoryEx函数使用方法》::SHCreateDirectoryEx用于创建多级目录,类似于mkdir-p命令,本文主要介绍了C++中::SHCreateDir... 目录1. 函数原型与依赖项2. 基本使用示例示例 1:创建单层目录示例 2:创建多级目录3. 关键注

C++中函数模板与类模板的简单使用及区别介绍

《C++中函数模板与类模板的简单使用及区别介绍》这篇文章介绍了C++中的模板机制,包括函数模板和类模板的概念、语法和实际应用,函数模板通过类型参数实现泛型操作,而类模板允许创建可处理多种数据类型的类,... 目录一、函数模板定义语法真实示例二、类模板三、关键区别四、注意事项 ‌在C++中,模板是实现泛型编程