Использование одинаковых переменных в нескольких функциях - PullRequest
2 голосов
/ 16 августа 2011

В моем коде из соображений эффективности я помещаю длинную функцию в ее собственный файл (назовем ее a.cpp). Я также создал второй файл с именем b.cpp, который содержит другую функцию, которая использует те же имена переменных.

Я пытался создать заголовочный файл для этих переменных, но он не работал. Есть ли способ сделать это (кроме размещения функций в одном файле)?

Простой пример:

a.cpp

double s;

void a(){
  s = 1.0;
  printf("%f\n",s);
}

b.cpp

double s;

void b(){
  s = 2.0;
  printf("%f\n",s);
}

Примечание По сути, каждый из этих файлов - это c, но вся программа - c ++.

Ответы [ 3 ]

6 голосов
/ 16 августа 2011

Напишите extern double s; в обоих (или в заголовке).Это объявление, не являющееся определением.

Затем запишите double s; всего в одном .cpp файле - это то место, где объект double будет физически "жить".*

Подробнее здесь .

0 голосов
/ 16 августа 2011

Поместите двойные s в заголовочный файл.

В верхней части каждого файла .cpp выполните:

#include "filename.h"

чтобы ввести переменную в файл cpp для использования. Было бы неплохо определить его как статический, но мы не будем вдаваться в подробности.

PS: Вы не должны использовать такие глобальные переменные, если этого можно избежать. Это не хороший ОО дизайн.

0 голосов
/ 16 августа 2011

поставить двойной с; в a.cpp. Напишите extern s; в часах

Также хорошая практика программирования - функция должна помещаться на экране / одной стороне a5.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...