这么写行吗?
int CMyClass::SomeFunc(int a,int b)
{
    return 100;
}int (pMyFunc*)(int,int);
pMyFunc=CMyClass::SomeFunc;

解决方案 »

  1.   

    I think that it is no problem.
      

  2.   

    类成员变量的地址在哪里啊?这是一个很复杂的话题. 在许多情况,它会出现许多特殊情况.不过,一般情况就较简单了.类只有实例化后才会分配内存的. 所以只有对象才会有地址.
    this指向对象的首址. 依此进行偏移.如:class Test
    {
     public:
      int  n;
      char c;
      char* p;
      short sh;
     
     char getchar()
     {
      return c;
     } int getint()
     {
      return n;
     }
     
     char* getpoint()
     {
      return p;
     }
     
     short getshort()
     {
      return sh;
     }
    }main()
    {
     ... Test test;
     strncpy(((char*)(test.this)) +1, "c", 1);
     char c = test.getchar();
     
     ...
    }
      

  3.   

    类成员变量的地址在哪里啊?这是一个很复杂的话题. 在许多情况,它会出现许多特殊情况.不过,一般情况就较简单了.类只有实例化后才会分配内存的. 所以只有对象才会有地址.
    this指向对象的首址. 依此进行偏移.如:class Test
    {
     public:
      int  n;
      char c;
      char* p;
      short sh;
     
     char getchar()
     {
      return c;
     } int getint()
     {
      return n;
     }
     
     char* getpoint()
     {
      return p;
     }
     
     short getshort()
     {
      return sh;
     }
    }main()
    {
     ... Test test;
     strncpy(((char*)(test.this)) +1, "c", 1);
     char c = test.getchar();
     
     ...
    }