繁体   English   中英

运算符 std::string() 常量?

[英]operator std::string() const?

有人能告诉我具体是什么吗

operator std::string()

代表?

它是一个转换运算符,允许将对象显式或隐式转换为 std::string。 当这样的转换发生时,操作符被调用,转换的结果就是调用的结果。

作为隐式转换的示例,假设您有一个函数接受类型std::stringconst std::string& ,但不接受给定的对象类型。 将您的对象传递给该函数将导致调用转换运算符,并将结果传递给函数而不是您的类型。

它是一个强制转换运算符。 任何定义此类型的类都可以在需要std::string任何地方使用。 例如,

class Foo {
public:
    operator std::string() const { return "I am a foo!"; }
};
...
Foo foo;
std::cout << foo; // Will print "I am a foo!".

强制转换运算符几乎总是一个坏主意,因为总是有更好的方法来实现相同的结果。 在上述情况下,最好定义operator<<(std::ostream&, const Foo&)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM