class Customer{
public:
Customer(){};
Customer(int i)
{id=i;}
~Customer(){...};
static void* run(void* arg)
{
//code for execution
return NULL;
}
private:
static int id;
}
int main(void)
{
int index;
int status;
//Create Customer Threads
pthread_t Customer_Threads[50];
Customer *Customers;
Customers=new Customer[50];
// create 50 Customer threads
for (index = 0; index < 50; index++) {
Customers[index]=*new Customer(index);
status = pthread_create (&Customer_Threads[index], NULL, Customers[index].run, NULL);
assert(0 ==status);
}
}
Sorum, hatası ' ve' tanımsız referansı 'Müşteri :: ~ A() tanımsız başvuru' hakkında açılır edilir Müşteri :: A() ''.pthread_create çağrı işlevi
Bir sınıf müşteri nesnesi dizisi oluşturmak ve sınıf işlevindeki çalıştırma işlevini yürütmek için multi_thread öğesini kullanmak istiyorum, bu hataların nasıl ele alınacağını bilmiyorum. Teşekkürler.
Xcode'ta C++ kullanın ve linux derleyin.
----------------- Güncelleme -------------------
Şimdi ben hala bir yüz hata 'undefined reference' Müşteri :: kimlik ''.
Neden olmadığından emin değilsiniz.
gibi görünecektir. Kurucuları ve yıkıcıyı bildirirsiniz, ancak * tanımlamalar * (örn. Yapıcılar ve yıkıcıların uygulamaları? –
Ayrıca bu ifade 'Müşteriler [index] = * yeni Müşteri (index)' size bir bellek sızıntısı verecektir. Java'dan farklı olarak, nesne örnekleri oluşturmak için 'new' kullanmanız gerekmez. Sadece "Müşteri (dizin)" yapmak bunu yapıyor, bu yüzden "Müşteriler [index] = Müşteri (endeks)" olarak değiştirin. –
Bu, ** bu ** kodu derlenirken alınan hatayı hayal etmek anlamına gelmez. 'Müşteri', eğer kurucular ve bir yıkıcı varsa, onları 'A' değil, 'Müşteri' (ve 'Müşteri') olarak adlandırırlardı. Sınıf tanımınızdan sonra da feshediyorsunuz; Derleyici, bir bağlantı aşamasına ulaşmadan çok önce bu şeylerle ilgili olarak cennete şikâyet etmelidir. – WhozCraig