Why doesn`t operator<< work successfuly? : While compiling these code blocks, i am getting error like this below. What is my mistake in here? What should i do to fix?
And while giving initial value to parameter like this "Os(std::cout)" what does it mean ?
 

     error: no match for 'operator<<' (operand types are 'std::basic_ostream<char>' and 'std::ostream {aka std::basic_ostream<char>}')
       Os << "Os:               " << Os << std::endl;

    //Expression.h
        class Expression{
        
        ...
        
        protected:
        std::ostream Os;
        };

    //Expression.c
    Expression::Expression():
    Os(std::cout)
    {
    ...
    }
    Expression::Expression(std::ostream&os):Os(os)
    {
    ...
    }

   

     Expression::Dump()
        {
         Os << "=============================================================" << std::endl;
         Os << "Os:               " << Os << std::endl;
        }

