范围解析运算符与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