2016-03-24 29 views
-1

Sınıf kurucusundan aramam gereken bir C kodu işlevim var.Sınıf Kurucusundan Üye Olmayan işlev çağırma

Class a{ 
..... 
} 
//Included the header file in the class and 
//declared the function globally as extern 
extern void ab(void); //function available in the c code 
a::a() //constructor of class a 
{ 
::ab(); //calling the non member function - giving an error 
} 

Bu bir hata veriyor: tanımsız başvuru `ab()'

kimse bana bu sorunu çözmek için yardımcı olabilir

? yapıcısına bir parametre olarak

+0

Bu hatayı "C" exe ekleyerek ekledim void ab(); aramadan önce. – tharunkumar

cevap

-2

Gönder işaretçisi: Eğer işlev DEFINED değil sanki

a::a(void (*ptrFun)(void)) 
{ 
    ptrFun(); 
} 
+0

Kurucuya bir parametre olmayan işaretçi nasıl parametre gönderebilirim? – tharunkumar

+0

extern anahtar sözcüğüyle elde edebileceğim herhangi bir yol var mı? – tharunkumar

+0

Veya sınıf tanımından önce global işlevi tanımlamaya çalışın. Benim için işe yarıyor. –

1

verilen kod ve hatadan basitçe bakarsak, bak. Bunu açıkladınız, ancak derleyici bu işlevin uygulanamayacağından şikayet ediyor. Bunu çözmek için, işlevinize örn.

void ab(void) 
{ 
    int x = 0; 
    printf("My int: %d", x); 
} 
+0

ab() fonksiyonunu, önceden tanımlanmış değerlerle seri veri yolu başlatma işlemini gerçekleştiren başka bir işlevi çağırıyor. – tharunkumar

İlgili konular