كيفية استخدام extern لمشاركة المتغيرات بين ملفات C++؟
مرحبًا! بدأت تعلم لغة C++ وأحاول تقسيم برنامجي إلى عدة ملفات. لدي ثلاثة ملفات: main.cpp و functions.cpp و functions.h. في functions.h أعلنت عن متغير عام int global_counter = 0; وعدة دوال. في functions.cpp عرّفت هذه الدوال التي تغير global_counter. في main.cpp أضمّن functions.h وأحاول استخدام global_counter، لكن المترجم يعطي خطأ "multiple definition of `global_counter`". سمعت شيئًا عن الكلمة المفتاحية extern لكنني لا أفهم تمامًا كيفية استخدامها بشكل صحيح. هل يمكنك التوضيح بمثال بسيط؟ هذا هو الكود الحالي الخاص بي:
// functions.h
#ifndef FUNCTIONS_H
#define FUNCTIONS_H
int global_counter = 0;
void increment();
void print_counter();
#endif
// functions.cpp
#include "functions.h"
#include
void increment() { global_counter++; }
void print_counter() { std::cout << global_counter; }
// main.cpp
#include "functions.h"
int main() {
increment();
print_counter();
}