C++程序设计:理解this指针在Student类中的应用
需积分: 44 37 浏览量
更新于2024-08-19
收藏 2.25MB PPT 举报
"C++程序设计中的this指针及其在软件学院课程中的应用"
在C++编程中,`this`指针是一个非常重要的概念,尤其在面向对象编程中起到关键作用。`this`指针在每个非静态成员函数内部隐含地存在,它是一个指向调用当前成员函数的对象的指针。在给出的代码示例中,`this`指针被显式地使用来访问和修改对象的成员。
首先,让我们看下`Student`类的定义:
```cpp
class Student{
public:
Student *p(void);
Student &q(void);
void s(int a);
float score;
private:
char name;
int age;
};
```
在这个类中,有两个成员函数`p()`和`q()`,它们都返回了一个`Student`类型的引用或指针。在这些函数内部,`this`指针被用来访问当前对象的成员。例如,在`p()`函数中:
```cpp
Student *Student::p()
{ age=age+2; return(this);}
```
这里,`this`指针被用于增加`age`成员的值,并且返回`this`指针本身,使得调用者可以进一步操作这个对象。同样,在`q()`函数中:
```cpp
Student &Student::q()
{ age=age+5; return(*this);}
```
`this`指针被用来增加`age`的值,并返回`*this`,即当前对象的引用,允许链式调用。
在`main()`函数中,`this`指针的概念被间接地使用:
```cpp
int main()
{
Student a;
a.s(20); a.score = 70;
(a.p())->score++; // 使用a.p()返回的指针访问score
(a.q()).score++; // 使用a.q()返回的引用访问score
return 0;
}
```
在这里,`a.p()`返回了`a`对象的指针,然后通过指针访问并增加`score`的值。同样,`a.q()`返回了`a`对象的引用,可以直接访问并增加`score`。
课程背景介绍中提到了C++的发展历程和特点。C++由Bjarne Stroustrup在1980年代基于C语言发展而来,增加了面向对象特性,如类、继承、多态等,使得程序设计更加模块化和可重用。C++是C的超集,兼容C的所有语法,同时提供了面向对象编程的机制,成为一种混合型语言。
在面向对象编程中,"面向过程"与"面向对象"是两种不同的编程思想。面向过程强调的是步骤和函数,而面向对象则以对象为中心,将数据和操作数据的方法封装在一起,通过对象之间的交互完成任务。C++的面向对象特性体现在类的定义、对象的创建以及继承、封装和多态这三个核心原则。
在C++中,继承是实现代码重用的重要手段,一个类可以从已有的类(基类)继承属性和行为,创建新的类(派生类)。这允许我们构建层次化的类结构,提高代码的复用性和可扩展性。
`this`指针在C++中起到了连接对象和其成员函数的作用,是实现对象内部操作的关键。通过学习和理解`this`指针,我们可以更好地进行面向对象编程,编写出更高效、可维护的C++代码。
2009-12-29 上传
2014-03-25 上传
2012-04-26 上传
点击了解资源详情
2016-04-20 上传
2020-09-02 上传
2020-08-30 上传
2020-09-05 上传
2020-09-03 上传
我的小可乐
- 粉丝: 26
- 资源: 2万+
最新资源
- Java集合ArrayList实现字符串管理及效果展示
- 实现2D3D相机拾取射线的关键技术
- LiveLy-公寓管理门户:创新体验与技术实现
- 易语言打造的快捷禁止程序运行小工具
- Microgateway核心:实现配置和插件的主端口转发
- 掌握Java基本操作:增删查改入门代码详解
- Apache Tomcat 7.0.109 Windows版下载指南
- Qt实现文件系统浏览器界面设计与功能开发
- ReactJS新手实验:搭建与运行教程
- 探索生成艺术:几个月创意Processing实验
- Django框架下Cisco IOx平台实战开发案例源码解析
- 在Linux环境下配置Java版VTK开发环境
- 29街网上城市公司网站系统v1.0:企业建站全面解决方案
- WordPress CMB2插件的Suggest字段类型使用教程
- TCP协议实现的Java桌面聊天客户端应用
- ANR-WatchDog: 检测Android应用无响应并报告异常