gpt4 book ai didi

c++ - 哪个是首选 : foo(void) or foo() in C++

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:55:54 24 4
gpt4 key购买 nike

我见过在 C++ 中定义转换运算符重载的两种风格,

  1. operator int* (void) const
  2. operator int*() const

问题1.我觉得这两个样式(是否加void)功能一样,对吗?
问题2. 哪个偏好更好?

最佳答案

这不仅适用于转换运算符,还适用于 C++ 中所有不带参数的函数。就个人而言,为了保持一致性,我更喜欢省略 void

这种做法起源于C。最初,当C没有原型(prototype)时,在函数声明中使用了一对空花括号,并且没有提供有关函数期望的参数的任何信息。

添加原型(prototype)后,为函数声明保留空括号以表示“未指定参数”以实现灵 active 和向后兼容性。为了提供一个明确的原型(prototype),意思是“不带参数”,添加了语法 (void)

在 C++ 中,所有函数声明都必须有原型(prototype),因此 ()(void) 具有相同的含义。

关于c++ - 哪个是首选 : foo(void) or foo() in C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1021337/

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