Tôi có một lớp học nên được khai báo trên toàn cầu từ main() và được truy cập từ các lớp được khai báo khác trong chương trình, làm cách nào để làm điều đó?C++: Khai báo một lớp toàn cầu và truy cập nó từ các lớp khác?
class A{
int i;
int value(){ return i;}
};
class B{
global A a; //or extern??
int calc(){
return a.value()+10;
}
}
main(){
global A a;
B b;
cout<<b.calc();
}
Tôi đoán mẫu thiết kế singelton là một điểm tốt để bắt đầu với http://stackoverflow.com/questions/1008019/c-singleton-design-pattern –
@Artem: [Singletons: Giải quyết các vấn đề bạn không biết bạn không bao giờ đã có từ năm 1995] (http://jalf.dk/blog/2010/03/singletons-solving-problems-you-didnt-know-you-never-had-since-1995/) –
@Artem - để reemphasize những gì @ gf nói - đừng làm thế! Trạng thái toàn cầu làm cho mã không thể soạn và kết hợp chặt chẽ. Điều này là xấu, trong số các lý do khác, bởi vì nó làm cho nó hầu như không thể kiểm tra. Ngoài ra, gần như mọi thực hiện singleton tôi đã thấy không phải là chủ đề an toàn trong một số cách tinh tế và khó chịu bạn không nhận thấy cho đến khi mã của bạn chạy trên một CPU với một mô hình bộ nhớ yếu. – Stewart