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