×

Scope Resolution Operator in C++

The scope resolution operator and its different usage in the C++ programming language will be discussed in this section. The scope resolution operator is used to refer to an out-of-scope global variable or member function. As a result, we employ the scope resolution operator to access a program's hidden variable or function. The double colon ( :: ) sign represents the operator.

If a global and local variable or function in a system with the same name, and we call it a variable, only the internal or local variables are automatically accessed, without access to the global variable. Hides global flexibility or function in this way. To circumvent this, we use a scope resolution operator to detect hidden variables or function in the system. You can use a wide range of operator to announce the work within the classroom and define it outside the classroom later. In the example below, we announce how Speed in a Bicycle class. Later, we will use a wide range of operator to define the function in the main section.

If you have a local variable with the same name as the global variable, you can use the scope resolution operator to access it. We have two variables, both named num, with global and local scope in the example below. As a result, you must use the scope resolution operator to access the global num variable in the main class.

The scope resolution operator is used in a variety of ways:

  • It's utilized to get at a program's hidden variables or member functions.
  • It uses scope resolution to define the member function outside of the class.
  • It's used to get reach a class's static variables and static functions.
  • Inheritance uses the scope resolution operator to override functions.

Using the scope resolution ( :: ) operator, create a program to access the concealed value.

Let us look at an example of a program using scope resolution operator:

#include < iostream >  
#include < bits/stdc++.h >
#include < stdio >
#include < stdlib >
using namespace std ;  
// declare global variable  
int number = 40 ;  
int main ( )  
{  
// declare local variable   
int number = 60 ;  
// print the value of the variables  
cout << " The value of the local variable number: " << number ;  
// use scope resolution operator ( :: ) to access the global variable   
cout << "\n The value of the global variable number: " << :: number ;   
return 0 ;  
}  

OUTPUT:

The value of the local variable number: 40
 The value of the global variable number: 60
…………………………………………………………………
Process executed in 2.22 seconds
Press any key to continue.

Example:

In the above example of a program in C++, we have demonstrated the use of scope resolution, here we are declaring a global variable number and in the main function we are trying to access it with the help of scope resolution operator.

Using the scope resolution ( :: ) operator, specify the member function outside of the class.

Let us look at an example of a program to specify the member function outside of the class:

#include < iostream > 
#include < bits/stdc++.h >
#include < stdio >
#include < stdlib > 
using namespace std ;   
class Operate  
{  
public:  
    // declaration of the member function  
    void fun ( ) ;  
};  
// define the member function outside the class.  
void Operate :: fun ( )   /* return_type Class_Name :: function_name */  
{  
cout << " It is the member function of the class. " ;  
}  
int main ( )  
{  
 // create an object of the class Operate  
Operate op ;  
op.fun ( ) ;  
return 0 ;  
}  

OUTPUT:

It is the member function of the class.
……………………………………………………….
Process executed in 0.11 seconds
Press any key to continue.

Explanation:

In the above example of a program in C++, we have demonstrated how we can access the member function of a class by using scope resolution operator. Here we are making void function and adding scope resolution operator to access the fun member function of the above class Operator.

Using the scope resolution ( :: ) operator, illustrate the standard namespace.

Let us look at an example of a program using scope resolution operator to demonstrate the standard namespace:

#include < iostream >  
#include < bits/stdc++.h >
#include < stdio >
#include < stdlib >
int main ( )  
{  
int num = 0 ;  
// use scope resolution operator with std namespace  
std :: cout << " enter the value of num: " ;  
std :: cin >> num ;  
std :: cout << " The value of num is: " << num ;  
}  

OUTPUT:

enter the value of num: 50
The value of num is: 50
……………………………………...
Process executed in 2.11 seconds
Press any key to continue.

Explanation:

In the above example of a program in C++, we have demonstrated how scope resolution can illustrate standard namespace. Here as you can notice we have not used using namespace std so scope resolution can illustrate standard namespace by adding std ( :: ).

Using the scope resolution ( :: ) operator, access the static variable.

Let us look at an example of a program using scope resolution operator which accesses the static variables in C++:

#include < iostream >  
#include < bits/stdc++.h >
#include < stdio >
#include < stdlib >
using namespace std ;   
class Parent  
{  
static int n1 ;  
public:  
static int n2 ;  
// The class member can be accessed using the scope resolution operator.  
void fun1 ( int n1 )  
{  
// n1 is accessed by the scope resolution operator ( :: )   
cout << " The value of the static integer n1: " << Parent :: n1 ;  
cout << " \n The value of the local variable n1: " << n1 ;  
}  
} ;  
// define a static member explicitly using :: operator  
int Parent :: n1 = 5 ; // declare the value of the variable n1  
int Parent :: n2 = 10 ;      
int main ( )  
{  
Parent b ;  
int n1 = 15 ;  
b.fun1 ( n1 ) ;   
cout << " \n The value of the Base :: n2 = " << Parent :: n2 ;  
return 0 ;  
}   

OUTPUT:

The value of the static integer n1: 5
The value of the local variable n1: 15
The value of the Base :: n2 = 10
……………………………………………………
Process executed in 2.22 seconds
Press any key to continue.

Explanation

In the above example of a program in C++, we have demonstrated how scope resolution operator can access static variables. Here in the parent class we have declared static variable of integer type, later we made a void fun function where scope resolution operator after the class name is trying to access the static variables.

Using the scope resolution ( :: ) operator, access the static member function.

Let us look at an example of a program using scope resolution operator which accesses the static member function:

#include < iostream >  
#include < bits/stdc++.h >
#include < stdio >
#include < stdlib >
using namespace std ;  
class ABC  
{  
public:  
// declare static member function  
static int fun ( )  
{  
cout << " \n Use scope resolution operator to access the static member. " ;  
}  
} ;  
int main ( )   
{  
// class_name :: function name  
ABC :: fun ( ) ;  
return 0 ;  
}

OUTPUT:

Use scope resolution operator to access the static member.
………………………………………………………………………………………
Process executed in 1.13 seconds
Press any key to continue.

Explanation

In the above example of a program in C++, we have demonstrated how scope resolution operators can access static member function. Here as you can observe the function names fun is statically declared and we want class ABC to access is, so with the help of scope resolution after the class name and then function name we can access the static member function.

Using the scope resolution ( :: ) operator, override the member function.

Let us look at an example of a program using the scope resolution operator which overrides the member function:

#include < iostream >  
#include < bits/stdc++.h >
#include < stdio >
#include < stdlib >
using namespace std ;  
class ABC  
{  
// declare access specifier  
public:  
void test ( )  
{  
cout << " \n It is the test ( ) function of the ABC class. " ;  
}  
} ;  
// derive the functionality or member function of the base class here
class child : public ABC  
{  
public:  
void test ( )  
{  
ABC :: test ( ) ;  
cout << " \n It is the test ( ) function of the child class. " ;  
}  
} ;  
int main ( )  
{  
// create object of the derived class  
child ch ;  
ch.test ( ) ;  
return 0 ;  
}  

OUTPUT

It is the test ( ) function of the ABC class.
It is the test ( ) function of the child class.	
……………………………………………………………..
Process executed in 2.22 seconds
Press any key to continue.

Explanation:

In the above example of a program in C++, we have demonstrated how scope resolution operator can override the member function. Here the concept inheritance comes in action. We have created a derived class child using the base class ABC so we have performed single inheritance and in the derived class we have made a void function called test, and using scope resolution operator we are trying to access test function by class ABC.


Related Topics

Auto keyword in C++

The primary function of auto keyword is to assign and detect the value of the data type automatically in C++. The compiler knows the data type of the variable by...

2 minutes read.

Binary Operator Overloading in C++

The Binary Operator Overloading in the C++ programming language will be covered in this part. An operator which comprises two operands to execute a mathematical operation is termed the Binary...

6 minutes read.

Different Ways to Compare Strings in C++

This section will go over the many methods for comparing strings in the C++ programming language. The string comparison checks if the first string is equal to another string. HELLO...

6 minutes read.

Parameterize Constructor

C++ Parameterized Constructor A constructor having parameters is known as parameterize constructor. Parameterize constructor is used to assign different values. Syntax: className(data-type argument){   // Constructor definition   }   className(data-type argument, data-type argument){   // Constructor definition   } A parameterized constructor can be passed values to constructor function in two ways: 1)...

1 minute read.

C++ Functions

In other programming languages, a function is referred to as a process or a subroutine. We can design functions to execute any task. A function can be used repeatedly. It...

5 minutes read.

Convex hull Algorithm in C++

The intersection of all convex sets containing a certain subset of a Euclidean space, or alternatively, the set of all convex combinations of points in the subset, defines the convex...

4 minutes read.

C++ Fork

A new process known as a "child process" is created with the fork system function and runs concurrently with the process that invoked fork() (parent process). Both processes will carry...

4 minutes read.

C++ Namespaces

An Overview In each scope, a name can only represent one entity. As a result, there cannot be two independent variables with the similar names in the same scope, as this may cause...

10 minutes read.

Program to find the GCD of two numbers in C++

Before understanding the program of GCD or HCF, one must know what GCD or HCF is. What is GCD? The GCD is referred to as Greatest Common Divisor. HCF is the other...

8 minutes read.

C++ cin and cout

In this article, we will discuss the C++ cin and cout with their library and examples. C++ Standard Input/Output: User-program communication is made possible by C++’s usage of input and output (I/O)...

5 minutes read.

Diamond Pattern in C++ using For Loop

For Loop: A for loop is a repetitive control structure that allows you to create a loop for executing a specific number of times. The syntax of for loop: In C++, a for...

5 minutes read.

C++ find missing in the second array

Given two arrays A and B of sizes n and m. Find the elements from array A that are not present in array B. Example Input : a[] = {1, 2, 3, 5,...

3 minutes read.

Features of OOPS in C++

What is OOPs? The main reason programmers prefer C ++ language over C is because of the support of object-oriented programing in C++. As the name suggests, object-oriented programming or OOPs...

3 minutes read.

C++ Recursion Function

A programming method called recursion that uses a function to call itself to address lesser problems. The Fibonacci sequence, factorial computation, and tree traversal are just a few of the...

4 minutes read.

How to improve programming skills in C++

Before getting started, one should know why to improve their programming skills. To become a good software developer or programmer, one must be skilled in at least one programming language. Many...

4 minutes read.

goto statement in C and C++

goto statement in C and C++ The goto statement is a jump statement, also sometimes referred to as an unconditional jump statement. Within a function, the goto statement can be used...

3 minutes read.

Bitmasking in C++

Bitmasking is a technique that is used to access a particular bit within the data bytes. When you apply the iterative approach, this phenomenon is used. A bitmask is described...

6 minutes read.

This keyword in C++

This keyword in C++ is a pointer which points to the object. It is passed as an argument to functions which helps in accessing the object. It is used for a...

3 minutes read.

C++ Program: Matrix Multiplication

Matrix Multiplication in C++ What is a Matrix? A matrix is a set of numbers in the form of rows and columns forming a rectangular array. It includes numbers, which are often...

4 minutes read.

Hospital Management Project in C++

The following capabilities are required to build a hospital management project: These are as follows: hospitals' names, contact information, and lists of doctors and patients. Activities Supported Hospital Data Print Patients' data to...

4 minutes read.