2010-10-22 29 views

Trả lời

7

Đối tượng chung được tạo trước khi main() được gọi.

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

làm việc như thế này? Không thực hiện bắt đầu tại main()? Bạn có thể ném một số ánh sáng? – Shree

+0

@Shree: Xem các chỉnh sửa. Mã làm việc [ở đây] (http://ideone.com/mKEB9) –

+3

@Shree: Không. Các biến Global (và một vài khác) phải được tạo trước 'main()', vì chúng được yêu cầu có thể sử dụng được khi ' main() 'bắt đầu. Vì vậy, các hàm tạo của chúng phải được gọi trước 'main()'. – sbi

5

Vâng, bạn có thể làm điều đó như vậy:

#include <iostream> 

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

X x; 

int main(int argc, char ** argv) { 
    std::cout << "main()\n"; 
} 
Các vấn đề liên quan