读书人

关于模板的一个小疑点

发布时间: 2013-09-07 14:12:44 作者: rapoo

关于模板的一个小问题
代码如下:


#include <fstream>
#include <iostream>
#include <sstream>
#include <string>

using namespace std;

template <typename T1, typename T2>
T1& show(T1 &s, T2 &v1)
{
s << v1;
return s;
}

int main(int argc, char *argv[])
{
string s("Hello, World!");
string desstr;
ostringstream oss(desstr);

show(oss, s);

cout << oss << endl;
cout << oss.str() << endl;
}

为何第一个输出与第二个不一样啊,有谁知道指点一下,谢谢了。
[解决办法]
这个和模板关系不大。主要是旧版本的 ostringstream 有 operator void*,第一个应该是用了这个,像这样。

cout << (void*)(oss) << endl;

读书人网 >C++

热点推荐