解释一下这个 C++运算符定义

发布于 2024-09-01 04:27:27 字数 278 浏览 4 评论 0原文

我在名为 StringProxy 的 C++ 类中定义了以下运算符:

operator std::string&()
{
    return m_string;
}

a) 这是什么以及它如何工作?我理解运算符重载的想法,但它们通常看起来像 X 运算符+(double i) 。

b) 给定一个 StringProxy 实例,如何使用此运算符来获取 m_string

I have the following operator defined in a C++ class called StringProxy:

operator std::string&()
{
    return m_string;
}

a) What is this and how does this work? I understand the idea of operator overloading, but they normally look like X operator+(double i).

b) Given an instance of StringProxy, how can I use this operator to get the m_string?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

随心而道 2024-09-08 04:27:27

这是一种转换方法。要获取 m_string,只需使用显式转换:(std::string)stringProxy 来执行转换。根据上下文(例如,如果您要分配给字符串),您也许可以不进行强制转换。

This is a conversion method. To get the m_string, simply use an explicit cast: (std::string)stringProxy to perform the conversion. Depending on context (e.g. if you're assigning to a string), you may be able to do without the cast.

〆凄凉。 2024-09-08 04:27:27

这是一个演员操作员。它们采用运算符 T() 的形式并支持自定义类型之间的转换。您可以通过简单地将 std::string 分配给常规字符串或引用来获取它。

It's a cast operator. They take the form of operator T() and enable casting between custom types. You can get the std::string out by simply assigning it to a regular string or reference.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文