使用嵌套功能时,Ostream输出会提供额外的地址
Ostream output gives extra adress, when using nested functions
我的功能很少,开关与Ostreams打开,以指定要打印对象的精确模板类型。但是当我使用嵌套功能时,以某种方式出现在输出流中。
代码示例:
#include <iostream>
using namespace std;
ostream & tmp2( ostream & in )
{
return in << "out";
}
ostream & tmp( ostream & in )
{
return in << tmp2( in );
}
int main(int argc, char** argv)
{
int t = 2;
switch (t)
{
case 2:
std::cout << tmp;
}
return 0;
}
输出:" OUT0X600E08"
有什么想法,为什么以及如何预防?
ostream & tmp( ostream & in )
{
return in << tmp2( in );
}
等效于:
ostream & tmp( ostream & in )
{
tmp2(in);
in << in; // This line causes the extra output.
return in;
}
您可能打算使用:
ostream & tmp( ostream & in )
{
return tmp2( in );
}
相关文章:
- 重载 ostream << 运算符,指针作为参数,导致输出上的内存地址
- 为什么cout输出内存地址不是字符串?
- C++可以输出一个结构的内存地址吗
- C++ - <<运算符重载,链表 - 地址而不是标准输出
- 为什么 c_str() 在返回常量指针值时不输出地址
- C++:为什么最后一个输出不是地址以及如何获取值 9
- 获取“将返回值分配给新变量”的警告和输出是内存地址
- 使用嵌套功能时,Ostream输出会提供额外的地址
- 如何解释地址固定器输出
- C++数组输出地址
- C++重载运算符<<输出地址
- std::dec仍然将内存地址输出为十六进制
- 为什么 printf() 在指针中显示与 cout 不同的地址输出C++
- char数组的地址出现意外输出
- 重载运算符<<输出地址而不是数据成员
- C++多项式输出的准确率为50%,内存地址为50%
- C++读取内存地址上的一些字节,输出为字符串
- C++指针输出从0到242的内存地址并停止
- ofstream 输出 std::map<UnicodeString, UnicodeString> 产生地址而不是字符串
- 为什么我的指针输出的是字符串,而不是C++中的内存地址