C++ 对象指针(函数指针)
来源:互联网 发布:mac新版itunes添加铃声 编辑:程序博客网 时间:2024/06/10 03:28
C++ 对象指针(函数指针)
1、指向对象的指针:
对象的起始地址就是对象的指针,可以定义一个指针变量用来存放对象的指针;
class Time{public: int hour; int minute; int sec; void get_time(); };void Time::get_time(){ cout<<hour<<":"<<minute<<":"<<sec; }
Time *pt; //定义pt为指向Time类对象的赋值指针变量
Time t1; //定义t1为Time类的对象
pt = &t1; //将t1起始地址赋给pt;
*pt 此时pt指向的对象已经是t1了;
(*pt).hour 指向对象中的hour成员
pt->hour;
2、指向对象成员的指针:
指向对象数据成员:
一般形式------数据类型名 *指针变量名;
同上面的例子:他如果time是公用数据类型,就可以通过把time指定为指针
在类外通过指针对象数据成员来访问hour;
pl = &t1.hour;
cout<<*pl;
指向对象成员函数的指针
需要注意的是,定义执行对象成员函数的指针变量的方法,和定义普通函数的指针变量方法是不同的!!!
普通函数指针变量定义
数据类型名(*指针变量名)(参数列表);
void(*p)(); //P是指向void型函数的指针变量
这样定义的函数指针变量可以用来指向一个函数,并且调用函数;
p= fun; //将fun函数的入口地址赋值给指针变量p;
(*p)(); //调用fun函数
对象成员函数的使用就没有这么简单了,
首先来看一下成员函数和普通函数的区别;
成员函数是类的一个成员,指针变量的类型必须与赋值号右侧的函数类型相匹配
1、函数参数的类型韩参数个数;
2、函数返回值的类型
3、所属的类
综上所述定义对象成员函数的具体方法是
void (TIme:: *p2)(); //定义p2为指向time类中公有成员函数的指针变量
(Time:: *p2) 两侧的括号不能省略,因为()的优先级高于*
定义成员函数的指针变量的一般形式为;
数据类型名(类名:: *指针变量名)(参数列表);
可以让他指向一个公有成员函数,把成员函数的入口给他就可以了
比如:
p2 = &Time:: get_time;
使指针变量指向一个公有成员函数的一般形式为
指针变量名 = &类名::成员函数名;
其实总结起来就是,在每个成员函数的前面加上类就可以啦!!!也就这点不同!!
#include <iostream>using namespace std;class Time{public: Time(int,int,int); int hour; int minute; int sec; void get_time(); //声明公有成员函数 }; Time::Time(int h=10,int m=20,int s=10){ hour = h; minute = m; sec = s; }void Time::get_time() //定义公有成员函数{ cout<<hour<<":"<<minute<<":"<<sec<<endl;; } int main (int argc, const char * argv[]){ Time t1(10,20,50); //定义类对象 int *p1 = &t1.hour; //定义整形数据的指针变量p1并使p1指向t1.hour cout<<*p1<<endl; t1.get_time(); //调用对象t1的成员函数get_time Time *p2 = &t1; //定义指向time类的指针变量p2并指向t1; p2->get_time(); void (Time::*p3)(); //定义指向time类公有成员函数p3; p3 = &Time::get_time; //p3指向类公有成员函数get_time (t1.*p3)(); //调用函数 return 0;}
- 函数指针(C++)
- C++ 对象指针(函数指针)
- C语言中的指针(指针数组 数组指针 函数指针 函数指针数组 指向函数指针数组的指针)
- C语言面向对象编程(定义、函数指针、指针函数)
- C指针函数 && 函数指针
- C程序设计语言--指针与数组(二) 指针数组 数组指针 函数指针 指针函数
- C++:指向对象成员函数的指针
- 函数指针与C的面向对象
- 函数对象、函数指针
- 函数指针 & 函数对象
- 【C和指针】函数指针
- 《c和指针》函数指针
- C语言(函数指针)
- 函数对象,函数指针,指针函数
- C++----函数&函数指针
- C++,C函数指针
- C/C++:函数指针
- 【c/c++】指针函数和函数指针
- 写一个寻找数组中第二大的数的程序
- php入门之九九乘法表代码
- java集合类总结
- 视频转码
- 经典排序算法3(选择排序)
- C++ 对象指针(函数指针)
- linux下mysql配置文件my.cnf详解
- C++第12周报告(一)用循环控制语句编写程序,完成表达式的计算
- java学习笔记之Arrays.asList
- POJ 2455 网络流英文阅读题
- 如何计算空间复杂度
- 软件项目管理框架--生命周期阶段
- HDU 3986 最短路+枚举
- 深入浅出Windows PE(一) PE文件头