C++学习:类与对象及this指针解析

需积分: 10 8 下载量 32 浏览量 更新于2024-11-21 收藏 224KB PPT 举报
"C++基础课程课件 下载" 在C++编程语言中,类和对象是面向对象编程的基础。类是一种用户自定义的数据类型,它定义了一组数据(称为数据成员)和操作这些数据的函数(称为成员函数)。对象则是类的实例,它拥有类中定义的所有数据成员和成员函数。 在创建类对象后,我们可以通过`.`操作符来访问对象的数据成员和成员函数。例如,`CTest` 类有一个 `n` 成员,我们可以通过 `test1.n` 和 `ptest2->n` 来访问这两个不同对象的 `n` 成员。这里,`->` 操作符用于指针对象,等同于 `(*ptr).member`,其中 `ptr` 是指向对象的指针。 在成员函数内部,C++ 使用了一个隐含的参数,即 `this` 指针。`this` 指针是一个指向调用成员函数的对象的指针,它使得成员函数能够访问调用它的对象的成员。例如,`CTest` 类中的 `getn()` 函数通过 `this->n` 访问 `n` 成员。`this` 的定义形式是 `T*const this`,表示它是一个常量指针,指向类型的 `T`(在这里是 `CTest` 类)。 `this` 指针在创建对象时被初始化为指向该对象,当成员函数被调用时,系统会自动将 `this` 指针作为隐含的参数传递给该函数。由于 `this` 是在成员函数内部定义的,所以它只能在成员函数中使用。每个对象调用同一成员函数时,`this` 指针会指向不同的对象,从而访问不同的数据成员。 下面的代码示例展示了 `this` 指针的使用: ```cpp class A { public: A(int x1) { x = x1; } void disp() { cout << "x=" << x << endl; } private: int x; }; int main() { A a(1), b(2); cout << "a:"; a.disp(); // 调用a的disp成员函数,this指向a cout << "b:"; b.disp(); // 调用b的disp成员函数,this指向b return 0; } ``` 另一个例子显示了 `this` 指针的值: ```cpp class A { public: A(int x1) { x = x1; } void disp() { cout << "\nthis=" << this << " when x=" << this->x; } private: int x; }; int main() { A a(1); a.disp(); // 在disp成员函数中,this指针指向a,显示其地址和x的值 return 0; } ``` 这两个示例演示了如何在成员函数中使用 `this` 指针来访问和显示对象的数据成员以及对象自身的地址。理解 `this` 指针的使用对于深入学习 C++ 面向对象编程至关重要。
2015-03-24 上传