键入转换自定义c ++类

时间:2012-09-18 09:43:37

标签: c++ visual-c++

如果我在c ++中有自己的SString类,我希望能够这样做:

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

我该怎么做?

2 个答案:

答案 0 :(得分:5)

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

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

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

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

答案 1 :(得分:3)

除了ForEveR所说的,请注意你也可以超载

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

并致电

cout<<x;

直接