Static Member Function
Static Member Function
//defining
int Demo :: ABC =10;
int main()
{
Class_name::Function_name()
Example
#include <iostream>
using namespace std;class
Demo
{
private:
static int X; public:
static void fun()
{
cout <<"Value of X: " << X <<
endl;
}
};//defining
int Demo :: X =10;
int main()
{
Demo X; X.fun();
return 0;
}
Friend Function
• We have seen that private members can't be accessed from outside class.
Non member function cannot have access to the private data of a class.
• There would be situation where we would like two classes to share
particular function.
Eg consider two classes manager and scientist.
We like to use a function income_tax() to operate on object of both d classes.
• C++ allows the common function to be made friendly with the both the
classes to have access to the private data of these classes
• To make an outside function “friendly” to a class, we have to simply declare
this function as a friend function of that class.
Syntax:
Friend returntype function_name(arguements);
Eg:
Friend void add();
• The function that is declared with the keyword friend is known as friend
function
• This function can be defined else where in the program.
• The function definition does not use either keyword friend or the scope
operator::
• A function can be declared as a friend in any number of classes.
• A friend function although not a member function, has full access right to
the private members of the class
A friend function has certain special characteristics:
1.It is not in the scope of class to which it has been declared as friend
2.Since it is not in the scope of class, it cannot be us called using object of that
class
3.It can be invoked like a normal function without the help of any object.
4.Unlike member function it can’t access member names directly and has to use
an object name and dot membership operator with each member name
• It can be declared either in the public or private part of a class without
affecting its meaning