C++程序设计:指向成员函数的指针详解

需积分: 9 22 下载量 69 浏览量 更新于2024-08-18 收藏 8.67MB PPT 举报
"指向类中成员函数的指针变量-C++程序设计(谭浩强完整版)" 在C++编程语言中,指向类中成员函数的指针变量是一个重要的概念,它允许我们直接引用类的某个特定成员函数,而不是通过对象实例来调用。这种机制在某些情况下非常有用,比如在回调函数、事件处理或者需要动态绑定行为的场景。 定义一个指向类中成员函数的指针变量,其语法如下: ```cpp <返回类型> (ClassName::*PointName)(<参数列表>); ``` 在这个定义中,`PointName` 是指针变量的名字,`ClassName` 是包含该成员函数的类的名称,`返回类型` 是成员函数执行后返回的数据类型,而 `<参数列表>` 是成员函数接受的参数类型列表。 在使用这样的指针变量之前,我们需要对其进行初始化,将它指向某个具体的成员函数。这通常通过下面的方式完成: ```cpp PointName = &ClassName::FuncName; ``` 这里 `&ClassName::FuncName` 表示获取 `FuncName` 成员函数的地址,将其赋值给 `PointName` 指针。这样,我们就可以通过这个指针来调用相应的成员函数,通常与对象结合使用,如: ```cpp ClassName obj; (obj.*PointName)(arg1, arg2); // 假设FuncName需要两个参数arg1和arg2 ``` C++的发展历程也值得了解。C++起源于C语言,由贝尔实验室的Dennis Ritchie和Brian Kernighan在B语言的基础上发展而来,最初用于编写UNIX操作系统。C++在C语言的基础上增加了面向对象特性,如类、继承、多态等,同时保留了C语言的高效和灵活性。 C语言的特点包括: 1. 结构化编程:C语言支持结构化编程,使得代码易于理解和维护。 2. 高级与低级特性结合:C语言拥有丰富的运算符,支持位运算,允许直接操作内存,具有汇编语言的特点。 3. 可移植性:C语言编写的程序可以轻松移植到不同的计算机平台。 4. 自由度高:语法结构相对宽松,赋予程序员高度的设计自由,但这也意味着对于初学者来说,理解和调试程序可能更具挑战性。 C++在C语言的基础上引入了面向对象编程,增强了类型安全性和抽象能力,使得程序设计更加模块化和可重用。同时,C++还提供了模板、异常处理、STL(标准模板库)等现代编程特性,极大地丰富了程序员的工具箱。然而,这也带来了学习曲线上的陡峭,需要更多的时间和实践去掌握。