要求是创建一个流,将其传递给第二个函数进行修改(它必须以这种方式传递,因为输出需要访问单独类的私有数据成员)。然后输出修改后的流。它按原样编译但只返回MyStream的地址,我需要它来返回流。
/* Prints the details of the media collection. */
void MediaCollection::PrintMediaDetails() const{
ostream MyStream(NULL);
for(int i = 0; i < CurrentMCSize; i++){
TheCollection[i]->PrintMedia(MyStream);
cout << i + 1 <<" : "<<&MyStream;
}
}
/*Takes Stream and and returns data members*/
void Media::PrintMedia(ostream & Out) const{
Out<<Title<<" "<<Artist<<" "<<&RunningTime<<endl;
}
答案 0 :(得分:0)
它正在打印MyStream的地址,因为你告诉它
更改
<<&MyStream;
到
<<MyStream;
,ostream MyStream(NULL)没有任何意义
cpp-progger建议使用std :: ostringstream。像这样定义一个
ostringstream MyStream;
并使用
打印内容cout << i + 1 <<" : "<< MyStream.str();