首页 > 解决方案 > 隐式调用是什么意思?

问题描述

在 c++ 中,我读过构造函数在需要分配内存时对运算符 new 和 delete 进行隐式调用。语句的含义是什么?

标签: c++constructor

解决方案


这本书谈论的是有些类隐藏了它们正在为您进行动态分配。让我们看一个简单的字符串类。在复制为 c 字符串的构造函数中,它将“隐式”调用new为字符串分配存储空间。您不必手动调用 new 并为字符串类提供正确大小的指针,构造函数会为您执行此操作,因此作者将其称为“隐式调用”

这就是他想要达到的目的。new构造函数和析构函数可以调用delete它们自己来处理内存分配,从而使您不必这样做。这就是大多数标准容器的工作方式。他们分配所需的存储空间,您无需担心。这是RAII 的核心部分(资源获取是初始化),并且是正确 C++ 设计的一个非常有用和主要的部分。


推荐阅读