范围解析运算符与C ++中的该指针有关吗?

在这里,我们将看到一些C ++示例,并尝试获取将生成哪种类型的输出。然后,我们可以了解范围解析运算符的用途和功能以及C ++中的“ this”指针。

如果某些代码中有一些成员说“ x”,而我们想使用另一个带有相同名称“ x”的参数的函数,那么在该函数中,如果我们使用“ x”,它将隐藏成员变量,并且将使用局部变量。让我们用一个代码检查一下。

示例

#include <iostream>
using namespace std;
class MyClass {
   private:
      int x;
   public:
      MyClass(int y) {
         x = y;
      }
   void myFunction(int x) {
      cout << "Value of x is: " << x;
   }
};
main() {
   MyClass ob1(10);
   ob1.myFunction(40);
}

输出结果

Value of x is: 40

要访问该类的x成员,我们必须使用'this'指针。“ this”是指向当前对象的一种特殊类型的指针。让我们看看“ this”指针如何帮助完成这项任务。

示例

#include <iostream>
using namespace std;
class MyClass {
   private:
      int x;
   public:
      MyClass(int y) {
         x = y;
      }
   void myFunction(int x) {
      cout << "Value of x is: " << this->x;
   }
};
main() {
   MyClass ob1(10);
   ob1.myFunction(40);
}

输出结果

Value of x is: 10

在C ++中,还有另一个运算符,称为范围解析运算符。该运算符用于访问父类的成员或某些静态成员。如果我们为此使用范围解析运算符,它将无法正常工作。同样,如果我们对静态成员使用'this'指针,则会产生一些问题。

示例

#include <iostream>
using namespace std;
class MyClass {
   static int x;
   public:
      void myFunction(int x) {
         cout << "Value of x is: " << MyClass::x;
      }
};
int MyClass::x = 50;
main() {
   MyClass ob1;
   ob1.myFunction(40);
}

输出结果

Value of x is: 50