作者:卿笃军

原文地址:http://blog.csdn.net/qingdujun/article/details/35263857

MFC中一个类要訪问另外一个类的的对象的成员变量值,这就须要获得原来那个类对象的指针,事实上有好几种方法都能够实现。

比方维护一个单例模式、设置静态变量等等。我们这里举个列子,实现多个类之间的相互訪问。

一、演示样例:创建MFC对话框,实现对个对话框之间数据訪问

  1. 我们创建一个MFC对话框应用程序,命名为Visitproject.
  2. 对话框本身有一个主界面(CVisitDlg对话框),那我们再加入�一个新界面CXXXDlg.

二、在主界面CVisitDlg类的头文件里,加入�一个static CVisitDlg *s_pDialog;指针(注:加入�为共同拥有类型的)

因为这个指针式静态的,我们须要在类外初始化,那么我们在CVisitDlg .cpp文件里,写上一行初始化代码,直接初始化为空,例如以下:

CVisitDlg *CVisitDlg::s_pDialog = NULL; //(注意要写在类外,不要写在类实现函数里面)。

三、然后须要在CVisitDlg 主对话框生成的时候,给这个指针赋值为主对话框指针。

那么,我们能够在CVisitDlg 类的构造函数或者OnInitDialog()函数里面写上例如以下一句代码:

s_pDialog = this;

好了,如今我们仅仅要在其它的类里面获得这个静态指针,就能够訪问这个类里面的全部数据了~~~~

四、获得静态指针

如果,我们想在CXXXDlg类中訪问CVisitDlg类的数据,例如以下代码轻轻松松搞定:

CVisitDlg *pDia = CVisitDlg::s_pDialog;

MFC 一个类訪问还有一个类成员对象的成员变量值的更多相关文章

  1. MFC一个类访问另一个类成员对象的成员变量值

    MFC中一个类要访问另外一个类的的对象的成员变量值,这就需要获得原来那个类对象的指针,其实有好几种方法都可以实现. 比如维护一个单例模式.设置静态变量等等.我们这里举个列子,实现多个类之间的相互访问. ...

  2. C++类訪问控制及继承

    一.C++类的訪问控制有三类:public,protected和private. 类訪问控制符 类成员可被哪些对象訪问 public 1.类的成员函数.2.类对象.3.友元.4.子类成员函数 prot ...

  3. 《Java虚拟机原理图解》1.3、class文件里的訪问标志、类索引、父类索引、接口索引集合

    讲完了class文件里的常量池,我们就相当于克服了class文件里最麻烦的模块了.如今,我们来看一下class文件里紧接着常量池后面的几个东西:訪问标志.类索引.父类索引.接口索引集合. 1. 訪问标 ...

  4. php 获取/设置用户訪问页面语言类

    User Language Class 获取/设置用户訪问的页面语言,假设用户没有设置訪问语言.则读取Accept-Language. 依据用户选择的语言显示相应的页面(英文.中文简体,繁体中文) U ...

  5. gcc的bug? c++模板类中友元函数的訪问权限问题

    原文地址:http://stackoverflow.com/q/23171337/3309790 在c++中,模板类中能够直接定义一个友元函数.该函数拥有訪问该模板类非public成员的权限. 比方: ...

  6. Objective-C 类属性和方法的訪问权限

    OC中提供了4种訪问权限.@private, @public, @protected这三种和其它的C++, Java是一样的,@package这个訪问权限并非Java里的包訪问权限,OC中没有包的概念 ...

  7. C++primer原书中的一个错误(派生类using声明对基类权限的影响)

    在C++primer 第4版的 15章 15.2.5中有以下这样一段提示: "注解:派生类能够恢复继承成员的訪问级别,但不能使訪问级别比基类中原来指定的更严格或者更宽松." 在vs ...

  8. 设计模式之二十四:訪问者模式(Visitor)

    訪问者模式: 定义了一个作用于一个类的一些操作,訪问者模式同意在不改变类的前提下添加一些操作. Represent an operation to be performed on the elemen ...

  9. PHP设计模式——訪问者模式

    声明:本系列博客參考资料<大话设计模式>,作者程杰. 訪问者模式表示一个作用于某对象结构中的各元素的操作. 它使你能够在不改变各元素类的前提下定义作用于这些元素的新操作. UML类图: w ...

随机推荐

  1. jquery实现抽奖

    用jquery实现抽奖小程序   用jquery实现抽奖小程序 这些日子,到处都可以看到关于微信小程序的新闻或报到,在博客园中写关于微信小程序的也不少.但是今天我要说的不是微信小程序,而是用简单的jq ...

  2. Areas(区域)

    Areas(区域) 原文:Areas作者:Dhananjay Kumar 和 Rick Anderson翻译:耿晓亮(Blue)校对:许登洋(Seay) Areas 是 ASP.NET MVC 用来将 ...

  3. 如何通过SNMP的OID识别不同厂商的设备

    众所周知,SNMP作为通用的网络协议常用于系统监控之中,那么如何借助SNMP来识别不同厂商的设备呢? 事实上,在SNMP的OID树状图中专门有一个节点用于识别各不同的厂商,这个节点是: iso(1)  ...

  4. MySQL 对于大表(千万级),要怎么优化呢?

    http://www.zhihu.com/question/19719997 提问:如何设计或优化千万级别的大表?此外无其他信息,个人觉得这个话题有点范,就只好简单说下该如何做,对于一个存储设计,必须 ...

  5. 创建基于文件组的数据库SQL救命语句

    CREATE DATABASE Sales ON PRIMARY (NAME = SPri1_dat, FILENAME = 'D:\SQLDB\SPri1dat.mdf', SIZE , MAXSI ...

  6. draw9patch超详细教程

    这篇文章是android开发人员的必备知识,内容摘选自网络,友我为大家整理和总结,不求完美,但是有用. 视频教程地址:http://player.youku.com/player.php/sid/XM ...

  7. [收藏转贴]构建RESTful风格的WCF服务

    RESTful Wcf是一种基于Http协议的服务架构风格. 相较 WCF.WebService 使用 SOAP.WSDL.WS-* 而言,几乎所有的语言和网络平台都支持 HTTP 请求. RESTf ...

  8. java httpclient post 文件到server

    public void sendFileToServer (String url, File logFiles) {        HttpURLConnection connection = nul ...

  9. 【转】iOS开发者申请发布证书及真机调试图文详解

    原文网址:http://www.tqcto.com/article/mobile/57822.html 打开iOS Dev Center,选择Sign in,登陆(至少99美元账号),登陆之后在网页右 ...

  10. 【转】 Android——eclipse共享library以及导出jar包

    原文网址:http://blog.csdn.net/jscese/article/details/36627195 android的apk在在eclipse上进行开发的时候,有时候需要import其它 ...