【发布时间】:2010-11-18 00:55:49
【问题描述】:
我正在尝试创建自己的 std::string 包装器以扩展其功能。 但是我在声明
我的自定义字符串类:
class MyCustomString : 私有 std::string
{
民众:
标准::字符串数据;
MyCustomString() { data.assign(""); }
MyCustomString(char *value) { data.assign(value); }
无效分配(字符*值){ data.assign(值); }
// ...其他有用的功能
std::string & operator data; }
};
主程序:
int main()
{
MyCustomString mystring("Hello");
std::cout &' 的转换存在,但不可访问
返回0;
}
我希望 cout 将类视为 std::string,这样我就不需要执行以下操作:
std::cout任何形式的帮助都将不胜感激!
谢谢。
仅供参考:我的 IDE 是 Microsoft Visual C++ 2008 Express Edition。
【问题讨论】:
-
我在这里添加其他答案,您需要独立(全局函数)的原因是因为第一个参数的类型需要是
std::string或您想要的任何类型在<<运算符之前。 -
... 这是在不修改实际 std::string 类的情况下提供此类运算符的唯一方法。