C ++ da statik funksiyani extern bilan belgilash mumkin

Nima uchun bu menga yong'oqni olib kelayotganini bilmayman, lekin bu. Men asosiy vazifada belgilangan va ilgari e'lon qilingan vazifam bor.

static void myFunc(int x);

static void myFunc( int x)
{
   //do stuff
}

main()

Boshqa sinfda myFunc (int x) dan foydalanishni xohlayman. Shuning uchun men nima qilishim kerakligini o'ylayman Extern static void myFunc (int x) bu sinflar sarlavhasi ichida va keyin uni faqat sinf tushunchasiga kerakli deb chaqiradi, lekin u ishlamaydi.

Men noto'g'ri ish qilyapman?

Rahmat

9

1 javoblar

Ular tashqi va statik birgalikda foydalana olmaysizlar.

static means Internal Linkage
extern means External Linkage

Agar tashqi bog'lanish kerak bo'lsa, faqat extern dan foydalaning.

Good Read:
what is external linkage and internal linkage in c++?

18
qo'shib qo'ydi
OK, bu mening fikrimcha, lekin statikani ta'rifdan olib tashlaganimda, u hali qurilmaydi.
qo'shib qo'ydi muallif Dixon Steel, manba
Rahmat, men bor, statikni olib tashladim va menda nomerda noto'g'ri deb e'lon qilingan edi.
qo'shib qo'ydi muallif Dixon Steel, manba
Agar static void myFunc (int) deklaratsiyasini saqlasangiz statik mavjudligidan qat'iy nazar funktsiyasi statik kodi> ta'rifi.
qo'shib qo'ydi muallif David Rodríguez - dribeas, manba
@DixonSteel: Funksiyaning deklaratsiyasi va ta'rifi dan static kalit so'zini olib tashlang va keyin extern boshqa manbadan faylga (aslida tarjima bo'limi)
qo'shib qo'ydi muallif Alok Save, manba