C++-এ গ্লোবাল ভেরিয়েবল ডিক্লেয়ার করতে হলে ফাংশন বা ব্লকের বাইরে, প্রোগ্রামের শুরুতে ডিক্লেয়ার করতে হয়। একাধিক ফাইলে শেয়ার করতে extern কীওয়ার্ড ব্যবহার করা হয়।
সামান্য গ্লোবাল ভেরিয়েবল
int global_x = 10; // ফাইলের শীর্ষে, ফাংশনের বাইরে
int main() {
cout << global_x; // 10
return 0;
}
একাধিক ফাইলে শেয়ার করা (extern)
globals.cpp (ডেফিনিশন)
int x = 10; int y = 20;
main.cpp (ইউজ)
#include <iostream>
extern int x; // ডিক্লেরেশন মাত্র, ডেফিনিশন নয়
extern int y;
using namespace std;
int main() {
cout << x << endl << y << endl;
return 0;
}
আউটপুট
10 20
কম্পাইল
g++ globals.cpp main.cpp -o program
দ্রষ্টব্য: extern শুধু ডিক্লেরেশন, ডেফিনিশন নয়। ডেফিনিশন শুধু এক ফাইলে থাকতে হবে (One Definition Rule)। কনস্ট গ্লোবাল ভেরিয়েবল ডিফল্টলি ইন্টারনাল লিঙ্কেজ থাকে (C++-এ), এক্সটার্নাল লিঙ্কেজের জন্য extern const int x = 10; লিখতে হয়।