一个对象的this指针并不是对象本身的一部分,不会影响sizeof的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。
一个类里面有许多的成员,每个成员都能用自己的类名来调用。但是在参数与成员名字冲突的时候,就可以用this来进行区分。
class Student{
public:
void setname(
char *name);
void setage(
int age);
void setscore(
float score);
private:
char *name;
int age;
float score;
};
void Student::setname(
char *name)
{
this->name = name;
}
void Student::setage(
int age)
{
this->age = age;
}
void Student::setscore(
float score)
{
this->score = score;
}
this指针的类型是 类类型* const。一个对象的this指针并不是对象本身的一部分,不会影响sizeof的结果。this指针是类成员的第一个默认的隐含参数,编译器自动的维护传递。只有在类的非静态成员函数才能调用this指针。静态成员函数中没有this指针,所以不能调用。
转载请注明原文地址: https://ju.6miu.com/read-667412.html