Если cout является объектом класса ostream, то почему мы не можем объявить свой собственный объект, скажем, 'out' из того же класса. т. е. разве следующий код не должен работать??
#include<iostream>
using namespace std;
int main()
{
ostream out;
out<<"something";
}
или иначе
#include<iostream>
using namespace std;
int main()
{
ostream_withassign out;
out<<"something";
}