
下面有关this指针的叙述中,正确的是( )。 A. 类的成员函数都有this指针 B. 任何与类相关的函数都有this指针 C. 类的非静态成员函数才有this指针 D. 类的友元函数都有this指针
在C++中,this指针是指向当前对象实例的隐含指针,仅存在于非静态成员函数中,用于标识调用该函数的具体对象。它的核心特征可以通过排除法明确:静态成员函数属于类本身而非特定对象,因此没有this指针;友元函数本质是外部函数,即便声明在类内也不具备成员函数的隐含参数机制,无法直接访问this。
例如,当调用obj.setX(5)时,编译器会隐式传递obj的地址作为this指针,使setX函数能准确修改该对象的成员变量。这种机制确保了多个对象调用同一成员函数时,各自的数据不会混淆——每个对象的this指针都指向其自身内存地址。而静态函数如static void printCount()因不属于任何对象实例,使用this会直接导致编译错误。
正确答案为 C:类的非静态成员函数才有this指针。理解这一点的关键在于区分“属于类”和“属于对象”的成员——this指针正是对象个体化的核心标志,它让成员函数能精准“定位”到调用者对象,这也是C++面向对象封装特性的底层实现之一。