Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2012, 16:12   #1
Крот
Пользователь
 
Регистрация: 15.03.2012
Сообщений: 57
По умолчанию Внешние и статические внешние переменные в разных файлах. C++

Программа состоит из 2-х файлов. В каждом из которых определены одни и те же переменные: tom, dick и harry

Во втором файле переменная dick должна перекрывать dick из главного файла а harry - это новая переменная в twoFile2.

Только что-то никак не получается это все сделать.
Я выделил две ошибки которые появляются при компиляции.
Может кто подскажет как правильно написать.

Код:
#include "stdafx.h"
#include "twoFile2.cpp"

#using <mscorlib.dll>

using namespace System;
using namespace std;


int tom = 3;
int dick = 30;              // error C2374: 'dick' : redefinition; multiple initialization

static int harry = 300; // error C2370: 'harry' : redefinition; different storage class



int _tmain()
{

   
   
	cin.get();
	return 0;
}

// twoFile2.cpp
Код:
extern int tom;			
static int dick = 10;	// перекрывает внешнюю переменную dick
int harry = 200;		// определение внешней переменной,
						// без конфликта с переменной harry из гл. файла
Крот вне форума Ответить с цитированием
Старый 30.03.2012, 14:55   #2
cyberovskij
Новичок
Джуниор
 
Регистрация: 21.06.2010
Сообщений: 2
По умолчанию

твоя ошибка вот в этом #include "twoFile2.cpp"
в результате на входе компилятор получит вот такой файл (без учета других include
Код:
#include "stdafx.h"
extern int tom;			
static int dick = 10;	// перекрывает внешнюю переменную dick
int harry = 200;		// определение внешней переменной,

#using <mscorlib.dll>

using namespace System;
using namespace std;


int tom = 3;
int dick = 30;              // error C2374: 'dick' : redefinition; multiple initialization

static int harry = 300; // error C2370: 'harry' : redefinition; different storage class



int _tmain()
{

   
   
	cin.get();
	return 0;
}
то-есть ты 2 раза определяешь переменные dick и harry
cyberovskij вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Внешние ссылки olgofur Microsoft Office Excel 2 01.03.2012 15:52
Внешние ссылки МастерГуру HTML и CSS 3 14.10.2011 04:22
Внешние процедуры sunny_alice Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 03.06.2011 08:33
Excel и внешние данные Евгений_12 Microsoft Office Excel 0 06.06.2010 09:48
«Внешние подпрограммы» Dr.Caste Помощь студентам 0 20.12.2009 15:36