C++中的范围解析运算符与this指针?


我们将在这里看一些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

更新于:30-7月-2019

244次浏览

开启 职业生涯

完成课程以获得认证

开始
广告