想在一个类中调用另一个类的函数,怎么弄?我试了PostMessage不行

解决方案 »

  1.   

    這個跟消息無關
    要調用另一個類的函數 需要看它是什麽類型
    如果是普通的成員函數 就需要通過一個實例來調用
    如果是靜態成員函數 就可以直接調用
    當然也要注意一下訪問權限比如你可以:
    class C0
    {
    public:
      static void sfun(){};
      void mfun();{}
    };class C1
    {
    public:
      void caller()
      {
        C0 c;
        c.mfun();
        
        C0::sfun();
      }
    }
      

  2.   

    打錯了一個分號class C0
    {
    public:
      static void sfun(){};
      void mfun(){};
    };class C1
    {
    public:
      void caller()
      {
        C0 c;
        c.mfun();
        
        C0::sfun();
      }
    };
      

  3.   

    :)你说的我都知道,我想在a.cpp里调用b.cpp的一个函数
    非静态函数,用实例不行
    静态函数,也不行
    我用全局变量也不行
    待会我把错误信息贴出来
      

  4.   

    看看你两个类之间的结构要不上msn 找我 [email protected]
      

  5.   

    我用了实例,编译时说被调用函数所属的类的构造和解析函数是protected,我把他们改成public后编译通过,运行时出错
      

  6.   

    E:\MyCode\record\insert.cpp(99) : error C2248: 'display::display' : cannot access protected member declared in class 'display'
      

  7.   

    這個不是運行時錯誤 是編譯時的錯誤
    你可以把要調用的函數訪問聲明在public:下
    或者用友元函數解決這個問題
    比如class C1
    {
    public:
      void caller(void);
    };class C0
    {
    public:
      void func_pub(){
        //...
      }
    protected:
      void func_pro(){
        //...
      }
      friend void C1::caller(void);
    };void C1::caller(void){    
    C0 c0;
    c0.func_pub();
    c0.func_pro();
    }int main(void)
    {
      C1 c1;
      return 0;
    }
      

  8.   

    PostMessage你自定义消息了吗?