g19*_*tic 3 c++ std stringstream
我有一个类,它包含对stringstream的引用(用作整个应用程序日志).如何在引用的字符串流中添加文本?
一个例子(因为我不能在这里发布实际来源......)
主要
stringstream appLog;
RandomClass myClass;
.....
myClass.storeLog(&applog);
myClass.addText("Hello World");
cout << appLog.str().c_str() << endl;
Run Code Online (Sandbox Code Playgroud)
RandomClass cpp
void RandomClass::storeLog(stringstream *appLog)
{
m_refLog = appLog;
}
void RandomClass::addText(const char text[])
{
m_refLog << text; //help here...?
}
Run Code Online (Sandbox Code Playgroud)
我使用与上面非常相似的设置和方法结构在我的真实应用程序中收到以下错误.
error C2296: '<<' : illegal, left operand has type 'std::stringstream *'
error C2297: '<<' : illegal, right operand has type 'const char [11]'
我知道这个错误是因为我正在使用引用但仍然试图做"<<",但我还能怎么做呢? m_refLog-><<???
首先取消引用指针
void RandomClass::addText(const char text[])
{
if ( m_refLog != NULL )
(*m_refLog) << text;
}
Run Code Online (Sandbox Code Playgroud)
在构造函数中,使用NULL将成员指针初始化为stringstream
RandomClass::RandomClass() : m_refLog(NULL)
{
...
}
Run Code Online (Sandbox Code Playgroud)