可视类型转换自定义 C++ 类

visual Type casting a custom c++ class

本文关键字:C++ 自定义 类型转换 可视      更新时间:2023-10-16

如果我在 c++ 中有自己的 SString 类,并且我希望能够做到这一点:

SString x("text");
LPCSTR p = (LPCSTR)x;
cout<<p;

我该怎么做?

在类SString中创建conversion operator to LPCSTR。如果可以使用C++11则应explicit此运算符。

operator LPCSTR() const { /*return data*/ };

你也可以创建一些函数,比如(我认为这个变体比转换运算符更好)

LPCSTR asLPCSTR() const { /*return data*/ };

除了ForEveR所说的之外,请注意您还可以重载

ostream& operator << (ostream& str, const SString& ss);

并致电

cout<<x;

径直。