gpt4 book ai didi

c++ - C++ 中的基本类型有析构函数吗?

转载 作者:行者123 更新时间:2023-12-01 21:42:28 27 4
gpt4 key购买 nike

这个问题来 self 试图理解智能指针的动机,在智能指针周围创建一个包装类,以便您可以添加自定义析构函数。指针(以及整数、 bool 值、 double 等)没有析构函数吗?

最佳答案

从技术上讲,非类类型(C++ 术语,通俗地说通常称为“原始类型”)没有析构函数。

C++ 标准仅涉及类上下文中的真正析构函数,请参阅 C++ 标准中的 [class.dtor]。除此之外,C++ 还允许使用相同的符号在非类对象上调用析构函数,即以下代码有效:

void foo(int z) {
using T = int;
z.~T();
}

这称为“伪析构函数”,其存在专门用于允许编写通用模板化代码以相同的方式处理类和非类类型。这个调用什么也不做。此语法在 C++ 标准的 [expr.prim.id] 中定义。

关于c++ - C++ 中的基本类型有析构函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60006759/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com