急急

解决方案 »

  1.   

    cannot access protected member declared in class 'a'
    什么意思啊,怎么这个类是受保护的。
      

  2.   

    1、封装一个公共类
    如CYourPublic
    class CYourPublic  
    {
    public:
    CYourPublic();
    virtual ~CYourPublic();public:
       //必须声明为静态的
        static void readmemo();
        static int  n_EventAmount;  //变量n_EventAmount
    }
    全局静态变量需在.cpp初始化
    int CYourPublic::n_EventAmount;//初始化全局变量
    在调用它们的地方包含YourPublic.h
    调用成员函数的地方CYourPublic::readmemo()就可以了
    调用成员变量的地方CYourPublic::n_EventAmount就可以啦2、例如:CStat调用CStatData的成员函数或成员变量 在StatData.h中对象实例化 
    CStat *pSta;//实例化 在生成CstatData窗体时把this指针传递过去 
    CStatData SD; 
    SD.pSta = this;//传递this指针 
    SD.DoModal(); 在Stat.cpp中加入#include"StatData.h" 
    在需要调用CStatData的函数或变量的地方 
    通过指针调用 例如 PSta->yourfunction();//yourfunction()是CStatData中的函数 
    若还有报错,尝试加上一句 class CStatData;
      

  3.   

    补充
    3、可以使用外部函数或变量
    直接在stdafx中定义
    stdafx.h中声明
    extern int  n_EventAmount;  //变量n_EventAmount 
    extern  void readmemo(); 在stdafx.cpp中定义
    int  n_EventAmount;
    void readmemo(); 在其他类中调用全局函数
    ::readmemo(); 
    全局变量直接使用
      

  4.   


    类中私有、保护成员函数是不能被调用的,将其修改成public的、
      

  5.   

    你要实现的功能 是不是在分割窗口实现的啊,如果是的话,要先获取主框架的指针,不能直接单纯的调用类的成员函数
    我之前也遇到类似的问题,根本不是protected member的问题,而是调用成员函数方法的问题
      

  6.   

    定义一个类对象啊,然后那个函数是public的就可以用   类对象.函数名  的形式调用了