首页 > 解决方案 > 创建一个没有变量名的结构,它有什么用?

问题描述

我刚刚遇到这种语法,我不确定我在哪里可以真正使用它。

std::hash<std::string>{}(str);

我看到这里没有使用变量名来引用创建的记录,我想知道为什么除了调用函数/重载运算符之外,还有人会使用这种语法来创建结构/记录?

标签: c++c++11structrecord

解决方案


本质上,是的,如果你想调用构造函数或成员函数,你会这样做,但你不关心对象本身。

根据我的经验,这在 RAII 类型中最常见,其中对象的生命周期与资源相关联。您创建一个对象,从而获取资源(如文件或某物),然后对该资源执行某些操作。现在说你以后不需要它。如果你不给它一个名字,它会在你完成后直接调用析构函数,因为“变量”(甚至不存在)会立即超出范围,从而释放资源。


推荐阅读