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次瀏覽

開啟 職業生涯

完成課程以獲得認證

開始
廣告