如何在C ++中按类名本身返回一个值?

时间:2016-02-17 19:05:31

标签: c++ class abstract-data-type

我正在使用c ++中的char[]包装类。像String这样的东西。现在我想从对象名称中获取一个值。例如:

void main() {
    String str;
    str = "Hello";
    cout << str;
}

所以str返回character arraycout可以在屏幕上打印出来。我怎样才能在课堂上实现这一目标? (顺便说一句,我知道已有一个字符串类。这是Data Structures课程的练习

2 个答案:

答案 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<<,将您的课作为第二个参数,并在那里执行流式处理。