/*类成员函数指针的语法*/

/*****************************类.h文件************************************/

#if !defined(AFX_ONLYOBJ_H__BABA5522_94E8_<?xml:namespace prefix = st1 />4F53_B979_27F3DD105320__INCLUDED_)
#define AFX_ONLYOBJ_H__BABA5522_94E8_4F53_B979_27F3DD105320__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class COnlyObj 
{
private:
    int m_nTemp;
public:
    COnlyObj(int nTemp);
    ~COnlyObj();
public:
    void ShowDate(void);
};

//声明类成员 函数指针类型
//把函数声明抄过来 void ShowDate(void);
//在前面加上 typedef void ShowDate(void);
//改一下函数名字并加上'*',在函数名两边加上'()', typedef void (*TYPE_pfn_ShowDate)(void);
//再加上作用域就完成了
typedef void (COnlyObj::*TYPE_pfn_ShowDate)(void);

//声明静态成员函数指针跟普通函数指针的定义一样
typedef void (*TYPE_pfn_StaticShowDate)(void);

#endif // !defined(AFX_ONLYOBJ_H__BABA5522_94E8_4F53_B979_27F3DD105320__INCLUDED_)

/*******************类的cpp文件****************************************/
#include "stdafx.h"
#include "OnlyObj.h"
#include <iostream.h>

COnlyObj::COnlyObj(int nTemp)
{
    m_nTemp = nTemp;
}

COnlyObj::~COnlyObj()
{
}

void COnlyObj::ShowDate(void)
{
    cout << m_nTemp << endl;
}

void COnlyObj::StaticShowDate(void)
{
    cout << "静态成员函数,没有this指针!!!" << endl;
}

/*******************************程序主文件*****************************/

#include "stdafx.h"
#include "OnlyObj.h"

int main(int argc, char* argv[])
{
    //定义一个类对象
    COnlyObj theOnlyObj(20);
    //再定义一个类指针对象
    COnlyObj *ptheOnlyObj = new COnlyObj(30);
    //定义一个成员函数指针类型,注意后来要加上作用域并不能加'()'
    TYPE_pfn_ShowDate pfnShowData = COnlyObj::ShowDate;
   
    //成员函数指针的调用
    //theOnlyObj.*这段可以理解为调用成员函数所需的this指针
    (theOnlyObj.*pfnShowData)();

//成员函数指针的调用
    //ptheOnlyObj->*这段可以理解为调用成员函数所需的this指针
    (ptheOnlyObj->*pfnShowData)();

//定义一个静态成员函数指针类型   
  TYPE_pfn_StaticShowDate pfnStaticShowDate = COnlyObj::StaticShowDate;
  //直接调用,不用加this指针,跟普通函数指针的调用差不多
  pfnStaticShowDate();

return 0;
}

转载于:https://www.cnblogs.com/w413133157/archive/2010/01/23/1654831.html

类成员函数指针的语法相关推荐

  1. C++函数指针和类成员函数指针

    一.函数指针--基本形式 char Fun(int n) { return char(n); } //char(*pFun)(int);void main() {char(*pFun)(int);pF ...

  2. C++ 函数指针 类成员函数指针

    一.函数指针 函数存放在内存的代码区域内,它们同样有地址.如果我们有一个int test(int a)的函数,那么,它的地址就是函数的名字,这一点如同数组一样,数组的名字就是数组的起始地址. 1.函数 ...

  3. 类成员函数指针和普通函数指针

    前言: 先声明一下,普通函数指针和类成员函数指针有很大的区别!所以在绑定函数的时候也会发生很多的不同的情况,本文就函数指针可能出现的各种情况一一进行分析. 测试目录: 1.普通函数指针指向普通函数 2 ...

  4. C++ 类成员函数指针的使用方法

    C++ 类成员函数指针的使用方法 #include <iostream>void func(){ std::cout << "void func()" &l ...

  5. C++普通函数指针和类成员函数指针

    举例1:普通函数指针: int(*fun)(double, int);fun = [](double a, int b) {cout << a << endl;cout < ...

  6. c++中的类成员函数指针

    c++中的类成员函数指针 文章目录 c++中的类成员函数指针 发生的事情 正常的函数指针定义 定义类的成员函数指针 std::function 发生的事情 最近,想用一个QMap来创建字符串和一个函数 ...

  7. C++类成员函数指针使用介绍

    前言 在之前写过的博客中有介绍过函数指针和指针函数的区别和简单用法(文章在这里),当时的Demo非常简单,都是C语言的写法,但是当在C++中直接像C那样使用类成员函数指针时就会报错:reference ...

  8. C++ 类成员函数指针数组应用(一)

    前言 阅读本文之前你需要明确知道函数指针和普通函数的区别,对这两者本文不做过多说明 目标 使用函数指针数组建立一套bpm工作流框架.这套框架在各种oa以及某几个大型通信公司应用的很广泛 适应场景 多分 ...

  9. 详解函数指针和类成员函数指针

    作者:倾夜·陨灭星尘 一.什么是函数指针? 函数指针,顾名思义即指向函数的指针. 如果要问,为什么能用一个指针指向一个函数呢?我觉得要理解这个问题,以及要理解后面的函数指针和类成员函数指针,没有什么比 ...

最新文章

  1. php pdo 打印sql语句,php – 使用PDO准备SQL语句
  2. 【Android 逆向】Android 系统文件分析 ( 根目录下的目录和文件 | /data/ 应用和用户数据目录 | /mnt/ 挂载其它设备目录 )
  3. 记录一次阿里架构师全程手写Spring MVC
  4. 波卡链Substrate (6)SubstrateUI界面
  5. C++实现字符串分割函数split()
  6. mysql索引结构原理、性能分析与优化
  7. db2 删除存储过程_蚂蚁金服OceanBase挑战TPCC | TPCC基准测试之存储优化
  8. java web核心知识_JAVA web 相关知识点
  9. 【PAT甲级 - 1028】List Sorting (25分)(模拟,排序)
  10. Separate Query from Modifier(分离查询和修改)
  11. 机器学习笔记III: 基于支持向量机的分类预测
  12. 八位流水灯的verilog代码_Arduino入门 第七节-彗星灯 呼吸流水灯
  13. python插值算法实现_图像插值算法Opencv+python实现
  14. Fixjs实践——标签、按钮控件
  15. BZOJ1034: [ZJOI2008]泡泡堂BNB
  16. python 统计excel表格_Python实现对excel文件列表值进行统计的方法
  17. NVIDIA Riva中文手册 (五) —— Riva TTS语音合成API的使用
  18. java 客户端和服务端加密,RSA 加密解密,客户端JS加密,服务端JAVA解密
  19. 程序员也要学英语——英语构词法
  20. oracle循环数据字典,Oracle DUL的工作原理和技术实现

热门文章

  1. 说说浏览器的沙箱机制
  2. asp.net core系列 47 Identity 自定义用户数据
  3. cocos2d-x 帧动画学习
  4. sicily 1150. 简单魔板
  5. spring mybatis 集成
  6. 使用SAX解析XML封装实体Bean
  7. 心得体悟帖---开解语录2
  8. 后盾网lavarel视频项目---lavarel使用模型进行增删改查操作
  9. 重温经典之《企业应用架构模式》——.NET中的架构模式运用 (Base Patterns 1)
  10. Python3 中 爬网页 \uxxx 问题