如果我在c ++中有自己的SString类,我希望能够这样做:
SString x("text");
LPCSTR p = (LPCSTR)x;
cout<<p;
我该怎么做?
答案 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;
直接