gpt4 book ai didi

c++ - C++ (Visual Studio 6) 中 operator< 和 operator[] 的默认返回值是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 12:26:23 24 4
gpt4 key购买 nike

我继承了一个需要为 VS2005 翻译的大型 Visual Studio 6 C++ 项目。一些类定义了 operator< 和 operator[],但没有在声明中指定返回类型。 VS6 允许这样做,但 VS2005 不允许。

我知道 C 标准指定普通函数的默认返回类型是 int,我假设 VS6 可能遵循这一点,但这是否也适用于 C++ 运算符?或者 VS6 可以自己找出返回类型吗?

例如,代码定义了一个自定义字符串类,如下所示:

class String {
char arr[16];
public:
operator<(const String& other) { return something1 < something2; }
operator[](int index) { return arr[index]; }
};

VS6 会简单地将两者的返回类型都设置为 int,还是它会足够聪明地弄清楚 operator[] 应该返回一个 char 而 operator< 应该返回一个 bool(而不是将两个结果都转换为 int all时间)?

当然,我必须添加返回类型以使此代码符合 VS2005 C++,但我想确保指定与以前相同的类型,以免立即更改程序行为(我们目前正在寻求兼容性; 我们稍后会标准化)。

最佳答案

operator<返回 bool默认情况下。

operator[]返回 int默认情况下(我认为),但几乎肯定应该将其更改为返回集合包含的任何内容。对于上面给出的字符串示例,这将是 charwchar_t .

关于c++ - C++ (Visual Studio 6) 中 operator< 和 operator[] 的默认返回值是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2274356/

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