有人可以解释一下这个代码有一个类StringStream
。我不明白的是StringStream& write(char*)
。如果在 cpp 文件中有
StringStream& StringStream::write(char* text)
{
//what values can i return??
//can i return address of character text is currently pointing to?
}
您将返回*this
- 即对当前对象的引用。(嗯,你可以返回任何 non-local StringStream
,但我想目的是我所说的)
这种技术通常用于方法链接 - 即执行以下操作:
StringStream ss;
ss.write("Hello ").write("world!");
这是一种最有可能修改StringStream
实例并返回对 a 的引用的方法StringStream
。所以你应该返回对实例本身的引用
StringStream& StringStream::write(char* text)
{
// do stuff
return *this;
}
这允许您执行链接:
StringStream s;
s.write("foo").write("bar");
也就是说,我希望该write
方法采用const char*
:
StringStream& write(const char* text);
因为该方法可能不会修改传递给它的数据,并且是为了能够正确传递字符串文字(例如示例中的 and )所必需"foo"
的"bar"
。
您可以简单地返回对 stringStream 类的引用。当您编写同一个类的成员函数时,您可以简单地返回指向 this 的指针。有关 StringStream 类的更多信息:单击此处