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
#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
#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