Generally in C programming language We consider printf and scanf to be functions. when it comes to cout and cin, in C++ what are they?I mean they cant be functions as they are n
cout
is object of type ostream.
cin
is object of type istream.
Suppose x is an variable ( let integer type ) .We want to put value in it.What we do ?
We write cin>>x .
But we can also put the int data by writing cin.operator>>(x) . This implies cin is an object and operator >> is a function in which x is passed .
They are global variables, declared in the header <iostream>
std::cout and std::cin are global objects of classes std::ostream and std::istream respectively, which they've overloaded operator <<
and >>
. You should read about operator overloading.
cout << expr ;
~~~~~~ ~~~~ ~~~~~~~~
object op. argument
It's like a function call; the function is an overloaded operator and a shortcut for this:
cout.operator<<(expr);
or this:
operator<<(cout, expr);
depending on the results of overload resolution