1

有人可以解释一下这个代码有一个类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?
}
4

3 回答 3

4

您将返回*this- 即对当前对象的引用。(嗯,你可以返回任何 non-local StringStream,但我想目的是我所说的)

这种技术通常用于方法链接 - 即执行以下操作:

StringStream ss;
ss.write("Hello ").write("world!");
于 2013-03-08T14:55:52.537 回答
3

这是一种最有可能修改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"

于 2013-03-08T14:57:48.070 回答
0

您可以简单地返回对 stringStream 类的引用。当您编写同一个类的成员函数时,您可以简单地返回指向 this 的指针。有关 StringStream 类的更多信息:单击此处

于 2013-03-08T15:00:42.873 回答