解释一下这个 C++运算符定义
我在名为 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是一种转换方法。要获取 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.这是一个演员操作员。它们采用运算符 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.