#include<stdio.h>
#include<stdlib.h>
#include<pthread.h>
class a;
class b;
void a1(a*h)
{
  printf("A\n");

}
void b1(b*b1i)
{
  printf("B\n");
}
class a{
   public:
   static a*init()
 {
   if(instance==NULL)
  {
    instance=(a*)malloc(sizeof(a));
  }
    return instance;
 }

  void create()
{

 pthread_t thrd1;
 pthread_create(&thrd1,NULL,(void*)a1,this);

}


 protected:
    static a*instance;
};

class b{

public:
   static b*init()
{
   if(instance==NULL)
  {
     instance=(b*)malloc(sizeof(b));
  }
    return instance;
}

 void create()
{

pthread_t thrd2;
pthread_create(&thrd2,NULL,(void*)b1,this);


}
void printfs()
{
 printf("D\n");
}
 protected:
    static b*instance;

      a ah;
};

int main()
{
a*x=NULL;
//b*h=NULL;
x=(a*)malloc(sizeof(a));
//x=malloc(sizeof(a));
//x->init->create();
//h=new b();
return 0;




ude<stdio.h>
#include<stdlib.h>
#include<pthread.h>
class a;
class b;
void a1(a*h)
{
  printf("A\n");

}
void b1(b*b1i)
{
  printf("B\n");
}
class a{
   public:
   static a*init()
 {
   if(instance==NULL)
  {
    instance=(a*)malloc(sizeof(a));
  }
    return instance;
 }

  void create()
{

 pthread_t thrd1;
 pthread_create(&thrd1,NULL,(void*)a1,this);

}


 protected:
    static a*instance;
};

class b{

public:
   static b*init()
{
   if(instance==NULL)
  {
     instance=(b*)malloc(sizeof(b));
  }
    return instance;
}

 void create()
{

pthread_t thrd2;
pthread_create(&thrd2,NULL,(void*)b1,this);


}
void printfs()
{
 printf("D\n");
}
 protected:
    static b*instance;

      a ah;
};

int main()
{
a*x=NULL;
//b*h=NULL;
x=(a*)malloc(sizeof(a));
//x=malloc(sizeof(a));
//x->init->create();
//h=new b();
return 0;




}
大家帮看看,为什么创建线程时总是类型转换错误