主题:求助
#include<stdio.h>
#include<stdlib.h>
#include<pthread.h>
#include<unistd.h>
class a;
class b;
void* a1(void*)
{
printf("A\n");
//b::init()->printfs();
return 0;
}
void* b1(void*)
{
printf("B\n");
a::init()->printfs();/////////////////////??????????????????
return 0;
}
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,&a1,this);
}
void printfs()
{
printf("H\n");
}
protected:
static a*instance;
};
a*a::instance=NULL;
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,&b1,this);
}
void printfs()
{
printf("D\n");
}
protected:
static b*instance;
// a ah;
};
b*b::instance=NULL;
int main()
{
a::init()->create();
b::init()->create();
sleep(1);
return 0;
} 编译时的错误是什么原因导致的啊?
#include<stdlib.h>
#include<pthread.h>
#include<unistd.h>
class a;
class b;
void* a1(void*)
{
printf("A\n");
//b::init()->printfs();
return 0;
}
void* b1(void*)
{
printf("B\n");
a::init()->printfs();/////////////////////??????????????????
return 0;
}
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,&a1,this);
}
void printfs()
{
printf("H\n");
}
protected:
static a*instance;
};
a*a::instance=NULL;
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,&b1,this);
}
void printfs()
{
printf("D\n");
}
protected:
static b*instance;
// a ah;
};
b*b::instance=NULL;
int main()
{
a::init()->create();
b::init()->create();
sleep(1);
return 0;
} 编译时的错误是什么原因导致的啊?