我正在使用c ++中的char[]
包装类。像String
这样的东西。现在我想从对象名称中获取一个值。例如:
void main() {
String str;
str = "Hello";
cout << str;
}
所以str
返回character array
,cout
可以在屏幕上打印出来。我怎样才能在课堂上实现这一目标? (顺便说一句,我知道已有一个字符串类。这是Data Structures
课程的练习
答案 0 :(得分:3)
这可能是你的意思:
std::ostream & operator << (std::ostream & os, const String & s)
{
return os << s.get_char_pointer();
}
当然,您需要将get_char_pointer
更改为适用于String
的任何内容。
答案 1 :(得分:2)
你正朝着错误的方向前进。你不需要str
返回一个字符数组(当然它无论如何都不能)。虽然从技术上讲,您可以在String
类上定义转换运算符,但不建议这样做,因为它可能会产生意想不到的效果。
相反,重载 operator<<
,将您的课作为第二个参数,并在那里执行流式处理。