1

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

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

我该怎么做?

4

2 回答 2

5

conversion operator to LPCSTR在您的班级中创建SString。如果可以使用C++11这个操作符应该是explicit

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

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

LPCSTR asLPCSTR() const { /*return data*/ };
于 2012-09-18T09:44:58.963 回答
3

除了 ForEveR 说的,注意你也可以重载

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

并打电话

cout<<x;

直接地。

于 2012-09-18T09:46:39.887 回答