Overloading Stream Insertion and Extraction Operators

This video tutorial made by the Learning Lad youtube chanel explains how to Overload Stream Insertion and Stream Extraction Operators in c++.

You will learn what is the syntax to overload stream insertion  and stream extraction operators, how to make stream insertion and extraction operators to work with a user defined custom class, how to define the stream insertion and extraction operators as friend to a class, how to write the operator function in detail with example.

source code for this tutorial

#include <iostream>
#include <string>
using namespace std;

class Person{
string name;
int age;
    name = "noname";
    age = 0;

    friend ostream &operator << (ostream &output,Person &p);
    friend istream &operator >> (istream &input, Person &p);

ostream &operator << (ostream &output,Person &p){
    output << "what the hack "<<endl;
    output << "my name is "<< p.name << " and my age is "<<p.age << endl;
    return output;

istream &operator >> (istream &input,Person &p){
    input >> p.name >> p.age;
    return input;

int main()
    cout << "enter the name and age "<<endl;
    Person anil;
    cin >> anil;
    cout << anil;
    return 0;