In this tutorial we shall see different uses of Scope Resolution Operator
- To access a global variable.
- In case of multiple inheritance.
- To Access class static variables.
- To access static member function
- To define a function outside the class.
1. To access a global variable.
#include <iostream> using namespace std; int num = 10; int main(void) { int num = 20; cout<<"Local num value "<<num<<endl; cout<<"Global num value "<<::num<<endl; }
Output:
Local num value 20 Global num value 10
2. In case of multiple inheritance.
#include <iostream> using namespace std; class Base { public: int num; Base() { num = 10; } }; class Derived : public Base { public: int num; Derived() { num = 20; } void display() { cout<<"The base class num is "<<Base::num<<endl; cout<<"The derived class num is "<<Derived::num<<endl; } }; int main(void) { Derived dObj; dObj.display(); }
Output:
The base class num is 10 The derived class num is 20
3. To Access class static variables.
#include <iostream> using namespace std; class Base { public: static int num; }; int Base::num = 20; int main(void) { cout<<"The static value is "<<Base::num<<endl; }
Output:
The static value is 20
4. To access static member function
#include <iostream> using namespace std; class Base { public: static void display() { cout<<"The display function"<<endl; } }; int main(void) { Base::display(); }
Output:
The display function
5. To define a function outside the class.
#include <iostream> using namespace std; class Base { public: void display(); }; void Base::display() { cout<<"In display function"<<endl; } int main(void) { Base obj; obj.display(); }
Output:
In display function