发送 std::endl 到流给出内存地址
sending std::endl to stream gives memory address
谁能给我解释一下为什么这个程序会把地址发送到 std::cout?
#include<string>
#include<iostream>
#include<fstream>
std::ostream& stuff(std::ostream& o, std::string s)
{
o << s << std::endl;
return o;
}
int main(){
std::cout << stuff(std::cout, "word") << std::endl;
}
是main()中的std::endl引起的..但是为什么呢??
输出:
word
0x804a064
你的函数 stuff
returns 传递给它的 std::ostream
。
这意味着您的代码:
std::cout << stuff(std::cout, "word") << std::endl;
实际调用:
std::cout << (std::cout) << std::endl;
^^^^^^^^^^^ this is the result of calling "stuff"
您正在输出 std::cout
对象的地址。
您的程序在功能上等同于:
std::cout << "word" << std::endl;
std::cout << std::cout << std::endl;
谁能给我解释一下为什么这个程序会把地址发送到 std::cout?
#include<string>
#include<iostream>
#include<fstream>
std::ostream& stuff(std::ostream& o, std::string s)
{
o << s << std::endl;
return o;
}
int main(){
std::cout << stuff(std::cout, "word") << std::endl;
}
是main()中的std::endl引起的..但是为什么呢??
输出:
word
0x804a064
你的函数 stuff
returns 传递给它的 std::ostream
。
这意味着您的代码:
std::cout << stuff(std::cout, "word") << std::endl;
实际调用:
std::cout << (std::cout) << std::endl;
^^^^^^^^^^^ this is the result of calling "stuff"
您正在输出 std::cout
对象的地址。
您的程序在功能上等同于:
std::cout << "word" << std::endl;
std::cout << std::cout << std::endl;