原理
this指针是什么?
1.this指针是类的指针,指向对象的首地址。
2.成员函数默认会隐式的包含this指针形参
3.在成员函数中所有对成员变量的调用都会默认转换成用this指针对成员变量的调用
4.this指针只能在成员函数中使用,在全局函数、静态成员函数中都不能用this。
5.在成员函数中调用delete this会出现什么问题?
当调用delete this时,类对象的内存空间被释放。在delete this之后进行的其他任何函数调用,
只要不涉及到this指针的内容,都能够正常运行。一旦涉及到this指针,
如操作数据成员,调用虚函数等,就会出现不可预期的问题。
使用
#include<iostream>
#include<string>
using namespace std;
//C++下的this指针
class Student
{
public:
int age;
Student()=default;
void SetAge(){
age=13;
// this->age=13;
}
};
//等效于C语言下的struct
struct Student_c{
int age;
};
void SetAge(Student_c *stu){
stu->age=13;
}
int main(){
Student_c stu_c;
Student stu;
stu.SetAge();
SetAge(&stu_c);
cout<<"cpp stu age: "<<stu.age<<endl;
cout<<"c stu age"<<stu_c.age<<endl;
}