gpt4 book ai didi

c++ - C++ 特别认可的函数(名称)列表。 (例如运算符++,开始)

转载 作者:搜寻专家 更新时间:2023-10-31 01:32:56 25 4
gpt4 key购买 nike

我刚学了一点C++,发现了一些特殊的功能。

示例 1

bool operator<(const B& b1,const B& b2)
bool B::operator<(const B& b2) const
//recognized by std::sort

示例 2

MyIterator C::begin();
MyIterator begin(C& c);
//recognized by range-based loop

据我所知,这些函数在 C++ 中被特别认可。
(此外,在每一对中,它们以某种方式以相同的方式被识别。)

问题

所有被识别为特殊的函数的列表是什么?
换句话说,C++(官方)规范中是否有任何部分总结了它们的列表+它们有多特别?

我相信,如果我在没有这些知识的情况下盲目编码,我可能会犯一些愚蠢的错误,尤其是在与 std:: 类交互时。

抱歉,主题名称不太明智,但我想不出更好的名称。

最佳答案

IMO,以下在 C++ 中被特殊处理:

  • main(),其中有超过 1 个有效的 syntax
  • 构造函数和析构函数
  • 某些特殊关键字,用作类似函数:4 个转换(static、dynamic、const、reinterpret)和 typeid
  • begin()end() 方法或函数在处理基于范围的 for 循环时被特殊对待
  • 各种overloadedoperators
  • 转换运算符,例如struct A { operator int (); };

可能缺少一些项目。不确定,如果一切都在标准中的某处列出,那几乎是不可能的。

但是,您担心弄乱 namespace std 是错误的。它确实包含一些标准函数,但除非您不使用 using namespace std,否则不用担心搞砸了。

关于c++ - C++ 特别认可的函数(名称)列表。 (例如运算符++,开始),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42198279/

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