2012-07-03 2 views
1

Я написал этот код за пределами всех функций:кода вне функции

int l, k; 
for (l = 1; l <= node; l++) 
{ 
    for (k = 1; k <= node; k++) 
    { 
     flow[i][j] = capacity[i][j]; 
     flow[j][i] = 0; 
    } 
} 

Он дает мне следующую ошибку компиляции:

[email protected]:~$ g++ -o output fords.cpp 
fords.cpp:63: error: expected unqualified-id before ‘for’ 
fords.cpp:63: error: expected constructor, destructor, or type conversion before ‘<=’ token 
fords.cpp:63: error: expected constructor, destructor, or type conversion before ‘++’ tok 
+0

Можете ли вы показать больше своего кода? если это не в главном цикле или какой-то другой функции, он не знает, что с ним делать. – BugFinder

+6

За пределами всех функций? Он должен быть во что-то, иначе он будет потерян и одинок, и вы получите ошибки. – NominSim

ответ

7

Вы не можете писать код вне функций. Единственными вещами, которые вы можете иметь вне функций, являются декларации, такие как объявления глобальных переменных (обычно это плохая идея), декларации функций и т. Д. Попробуйте поместить ее в такую ​​функцию, как int main(){}

+0

Как отметил Эрик Дж., Вы можете объявить макросы вне функций. – mydogisbox

+1

спасибо, что я поставил этот код в main() сейчас :) – user1492991

+0

Как новичок в C++, исходящий из python, вы можете объяснить, почему C++ не позволяет использовать код вне функции? Похоже, что было бы полезно выполнить некоторую инициализацию до того, как будет вызван main() или другие функции объявлены. (Я не пытаюсь спорить с компилятором, я просто хотел бы знать, что процесс мышления реализуется таким образом.) –

0

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

Если компилятор позволит вам писать код вне любой функции, он никогда не будет работать.

Поместите код в тело функции.

C++ допускает один случай, когда сам код написан за пределами тела функции, который является объявлением макроса, но macro должен использоваться в теле функции для выполнения.

0

Объявив глобальную переменную класса, вы можете выполнить код перед выполнением main(). Поместите код в конструктор класса.

Смежные вопросы