C++ 中的this指针详解及实例
什么是this指针?
在 C++ 中,this 指针是一个指向当前对象(成员函数所属的对象)的指针,它能够访问对象的成员变量和成员函数。
在 C++ 中,成员函数拥有一个隐含的参数this指针,该参数指向成员函数所属的对象。编译器会将成员函数的调用转成传递该隐含参数的形式。
如何使用this指针?
使用 this 指针可以访问当前对象的成员变量和成员函数,例如:
class Rectangle {
private:
int width;
int height;
public:
void setWidth(int w) {
this->width = w;
}
void setHeight(int h) {
this->height = h;
}
};
在上述代码中,setHeight函数中的 this 指针被用来引用成员变量 height,防止与参数 h 发生命名冲突。
示例说明1:在类的内部使用this指针
#include<iostream>
using std::cout;
using std::endl;
class Person {
private:
char* name;
int age;
public:
Person(char* nm, int a) {
this->name = nm;
this->age = a;
}
void print() {
cout << "My name is " << this->name << ", and I'm " << this->age << " years old." << endl;
}
};
int main() {
Person p("Peter", 20);
p.print();
return 0;
}
在上述代码中,我们定义了一个 Person 类,该类拥有两个成员变量 name 和 age,以及一个成员函数 print。在构造函数中通过 this 指针对成员变量进行初始化,在 print 函数中同样使用 this 指针引用成员变量。
示例说明2:在一个类的成员函数中返回当前对象的引用
#include<iostream>
using std::cout;
using std::endl;
class Rectangle {
private:
int width;
int height;
public:
Rectangle(int w, int h) {
this->width = w;
this->height = h;
}
Rectangle& addWidth(int w) {
this->width += w;
return *this;
}
Rectangle& addHeight(int h) {
this->height += h;
return *this;
}
void print() {
cout << "The Rectangle's width is " << this->width << ", and height is " << this->height << "." << endl;
}
};
int main() {
Rectangle rect(10, 20);
rect.addWidth(5).addHeight(10).print();
return 0;
}
在上述代码中,我们定义了一个 Rectangle 类,该类拥有两个成员变量 width 和 height,以及三个成员函数:构造函数、addWidth 函数和 addHeight 函数。在这两个函数中,使用 this 指针返回当前对象的引用,在 print 函数中使用 this 指针引用成员变量。
总结
在 C++ 中,this 指针是指向当前对象的指针,可以访问当前对象的成员变量和成员函数。通过使用 this 指针,可以使代码更有可读性,并且可以实现使用当前对象的成员函数返回当前对象的引用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++ 中的this指针详解及实例 - Python技术站