CSellTicket s 有个CTicket类的成员变量a 若还有一个类想访问 CSellTicket 类中的CTicket成员变量a 怎么做到啊???  我知道 可以通过 set get 接口   
但是 我通过MFC定义的类 .cpp .h中都找不到自己定义的类<没有父类>的实例化在哪里????
也就是找不到那个 s
更找不到 RUNTIME_CLASS(CSellTicket)
两个问题
1.第三个类怎么访问上面的a
2.MFC 自定义类的实例化在哪里
我该怎么办啊 !!!!还有就是CView的父窗口与父类(基类)不是一个概念吗

解决方案 »

  1.   

    文档类 的基类有个 CreateNewDocment  
    框架类 有个 CreateFrame 那我自定义的类呢(无基类的)
      

  2.   

    看来这个问题还真有难度啊CSDN没有VC高手吗?????
      

  3.   

    自己定义的类,要么你让MFC的主框架类来继承,要么在主框架的类里包含一个类的实例才可以。如果想在其他类里获得类的变量,首先变量必须是公有的,然后你可以获得那个类的实例指针,再从指针里来获得变量。具体问题具体分析。
      

  4.   


    怎么找到那个类的 实例指针????MFC 自定义类 根本看不到 CTicket ***=new CTicket();
    CSellTicket s 有个CTicket类的成员变量a 若还有一个类想访问 CSellTicket 类中的CTicket成员变量a 怎么做到啊??? 
      

  5.   

    1.第三个类怎么访问上面的a> 不明白你说的是什么意思……,LZ的表达2.MFC 自定义类的实例化在哪里> 类当然要由你自己来实例化了,难道你还指望系统帮你实例化??
      

  6.   

    首先声明:楼主的问题都只是基础问题,我也不是高手1.我知道 可以通过 set get 接口   
    但是 我通过MFC定义的类 .cpp .h中都找不到自己定义的类<没有父类>的实例化在哪里????
    也就是找不到那个 s类的实例化即是对象,当然不可能在.cpp或.h中找到,要在需要使用的地方定义,然后调用
    就像你要用一个整数时首先要用int a,然后再使用a2.第三个类怎么访问上面的a可以用3楼的方法,补充一点:如果a不是公有成员,就只能为你的类添加函数来实现访问功能,再用类的实例调用3.还有就是CView的父窗口与父类(基类)不是一个概念吗当然不是一个概念,类继承自它的父类,而父窗口与子窗口是一种从属关系
    前一种是抽象的关系,后一种是实际的关系4.文档类 的基类有个 CreateNewDocment   
    框架类 有个 CreateFrame 那我自定义的类呢(无基类的)对于一个类,只有构造函数和析构函数是不可缺少,其余的都是为了实现某些功能而存在的
    如果自定义的类有基类,则可使用基类的所有函数
    如果楼主不明白我的回答,那说明楼主需要再巩固一下类与对象方面的基础知识了
      

  7.   

    感谢楼上 我想我还没有表达清楚void CRegister::OnInQueue() 这个方法只有当用户点击一个按钮的时候才会触发我在CRegister类的这个成员函数里面为 为CRegister的一个 CTicket类型的 成员变量 m_ticket_Info 的各个属性赋值了我想在 CSell 这个类中得到 CTicket m_ticket_Info 的各个属性的值我该怎么办  ???
    如果我在CSell 里面实例化CRegister 
    CRegister *ptemp=new CRegister();
    ptemp->OnInQueue(); AfxMessageBox(ptemp->m_ticket_Info.flyfrom);但是这样会报内存泄漏的错误????
      

  8.   

    CRegister *ptemp=new CRegister();
        ptemp->OnInQueue();    AfxMessageBox(ptemp->m_ticket_Info.flyfrom);这段代码在CSell类的成员函数中  也是只有单击某个按钮才会触发
      

  9.   

    没有人解答一下吗 ???
    对于MFC里面这种点击按钮就会触发 某个类的成员函数 
    而不需要程序员显示调用ptemp->OnInQueue();
      

  10.   

    只new 不delete当然会内存泄露了
      

  11.   

    m_ticketlist.DeleteString(0); CRegister *ptemp=new CRegister();
      ptemp->OnInQueue(); AfxMessageBox(ptemp->m_ticket_Info.flyfrom);
    delete ptemp;试图 执行系统不支持的操作????????????大家没有明白我的意思吗
    win32中
    switch (Message)        {        case ID_BTN:                {                        CSnake a;//实例化这个类                        a.Move();调用这个类的成员方法                        break;                }
    复制代码可是MFC中 你更不就不用实例化这个类void CSnake::Move(){        MessageBox(NULL,"snake move","",MB_OK);}
    复制代码只要把这个类成员函数和 ID_BTN 关联  他就会自己 调用这类 还不用实例化 不明白 但是现在我想得到这个类的实力怎么办呢 
      

  12.   

    嗯,VC快玩完了,赶紧加入我们C#吧。
      

  13.   

    鄙视楼上!!!11楼的帖子把 我的迷惑说的很清楚了吧
    CSnake 是自定义类 
      

  14.   

    SDK 中
    [code=C/C++]switch (Message)  {  case ID_BTN:  {  CSnake a;//实例化这个类  a.Move();调用这个类的成员方法  break;  }code]MFC中 
    [code=C/C++]
    void CSnake::Move()//这是CSnake的.cpp{  MessageBox(NULL,"snake move","",MB_OK);}code]我就想知道   为什么一点击 按钮  【和Move关联】  就会调用这个消息响应函数
    而不用实例化这个类 ???????
    但是现在我想 在类外 得到这个类的成员成员变量的值 该怎么得到
    没实例化的 类我怎么得到啊???????