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
廣告