gpt4 book ai didi

c++ - 什么是 operator class_name() 常量?

转载 作者:太空宇宙 更新时间:2023-11-04 15:43:58 27 4
gpt4 key购买 nike

从项目 15,我注意到这些代码:

class FontHandle { ... };

class Font {
public:
// implicit conversion function
operator FontHandle() const { return f; }
private:
FontHandle f;
};

似乎 Font 类重载了其他类的构造函数,是吗?我们经常看到+-*/=重载定义,但为什么会这样呢?哪些情况应该这样做?

最佳答案

这是一个用户定义的转换运算符。

它允许从 FontFontHandle隐式转换。也就是说,它允许这样的代码:

Font f;
// ...
FontHandle fh = f; // Conversion applied here

如果没有这样的运算符,上面的行将产生“不相关类型之间不可能进行转换”的编译器错误

关于c++ - 什么是 operator class_name() 常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19666392/

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