2010-10-22 22 views

cevap

7

Global nesneler, main() çağrılmadan önce oluşturulur.

struct ABC { 

    ABC() { 
     std::cout << "In the constructor\n"; 
    } 
}; 

ABC s; // calls the constructor 

int main() 
{ 

    std::cout << "I am in main now\n"; 
} 
+0

Bu nasıl çalışır? Yürütme ana() 'de başlamaz mı? Biraz ışık atabilir misin? – Shree

+0

@Shree: Düzenlemelere göz atın. Çalışma kodu [here] (http://ideone.com/mKEB9) –

+3

@Shree: Hayır. Global (ve diğer birkaç) değişkenler, 'ana()' den önce oluşturulmalıdır, çünkü bunlar kullanılabilir olduğunda kullanılabilirler. main() 'başlar. Bu yüzden kurucularının ana() 'den önce çağrılması gerekiyor. – sbi

5

Evet, bunu şöyle yapabilirsiniz:

#include <iostream> 

struct X { 
    X() { std::cout << "X()\n"; } 
}; 

X x; 

int main(int argc, char ** argv) { 
    std::cout << "main()\n"; 
} 
İlgili konular