Scope Resolution Operator vs this pointer in C++


Scope Resolution Operator is used to access static or class members whereas this pointer is used to access object members when there is a local variable with same name.

Scope Resolution operator

Example

 Live Demo

#include<iostream>
using namespace std;
class AB {
   static int x;
   public:
      // Local parameter 'x' hides class member
      // 'x', but we can access it using ::.
   void print(int x) {
      cout<<"the number is:" << AB::x;
   }
};
// static members must be explicitly defined like below in c ++
int AB::x = 7;
int main() {
   AB ob;
   int m = 6 ;
   ob.print(m);
   return 0;
}

Output

the number is:7

this pointer

Example

 Live Demo

#include<iostream>
using namespace std;
class AB {
   int x;
   public:
      AB() {
         x = 6;
      }
   // here Local parameter 'x' hides object's member
   // 'x', we can access it using this.
   void print(int x) {
      cout<<"the number is: " << this->x;
   }
};
int main() {
   AB ob;
   int m = 7 ;
   ob.print(m);
   return 0;
}

Output

the number is: 6

Updated on: 30-Jul-2019

329 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements