2015-11-09 4 views
-1

У меня есть переменная, определяемая в одном .cpp-файле.Как обмениваться переменной между файлами в другом каталоге

(file1.cpp)

int N; 
.... 
N =3; 

(каталог/file2.cpp) ----> file2.cpp находится в другом каталоге.

extern int N; 

cout << n << endl ; -----> It is printing 0. 

Должно ли оно напечатано на 3-х страницах? Какая ошибка я делаю ... Пожалуйста, дайте мне знать. Структура каталога является:

(основной каталог)

file1.cpp directory 

(каталог)

file2.cpp 

Спасибо, Авинаш

+2

Возможные дубликат: HTTP: //stackoverflow.com/questions/12290451/access-extern-variable-in-c-from-another-file –

+2

'n' - это другая переменная в' N'. C++ чувствителен к csae. –

ответ

0

В один файл переменная должна быть определить как:

int N; 

в других как extern (лучше использовать файл заголовка включить такую ​​декларацию), т.е .:

extern int N; 

Структура каталогов не важно, просто CPP файлы должны быть собраны вместе, чтобы линкер разрешения соединений.

0

Чтобы сделать его работу вы можете использовать следующий подход:

файл

заголовка, который содержит заявления, так, чтобы другие единицы перевода можно легко импортировать:

// dir1/file1.hpp 
extern int N; 

файл реализации с определением переменной:

// dir1/file1.cpp 
int N = 3; 

Пример клиента, который использует переменную:

// main.cpp 
#include "dir1/file1.hpp" 

#include <iostream> 

int main() { 
    std::cout << N << std::endl; 
    return 0; 
} 

Обратите внимание, что включают в себя охрану опущены в dir1/file1.hpp