Can main function become friend function in C++ ?
Yes, it can.
The friend
declaration in your class A
grants function main()
the right of accessing the name of its non-public data members (in this case, i
):
friend int main();
The object obj
is default-constructed, and A
‘s constructor sets the value of i
to 10
:
A() : i(10) {}
// ^^^^^^^
// Initializes i to 10 during construction
Then, the value obj.i
is inserted into the standard output:
cout << obj.i;
// ^^^^^
// Would result in a compiler error without the friend declaration
solved C++: friend as main in class