Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

почему выскакивают ошибки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Попадут ли точки в координаты окружности http://www.cyberforum.ru/cpp-beginners/thread156717.html
Добрый вечер Задание такое: Ввести координаты 5 точек и определить какая из них попадает в окружность радиуса(R) и координатами центра (a,b). Использовать уравнение окружности. Есть пару идей у...
C++ Работы с фабрикой объектов Нужно создать иерархию классов с абстрактным классом DataStruct на её вершине. В основании иерархии создать два проиводных класса. В одном - стек, во-втором - очередь. Так же должна быть фабрика... http://www.cyberforum.ru/cpp-beginners/thread156693.html
C++ Declaretion syntax error
Всем привет! Не могу понять в чем проблема. Пишет "Declaretion syntax error" при компиляции на 8-стоке. Объясните почему. #include <vcl.h> #include <iostream.h> #include <conio.h> #pragma...
Максимальная длина целочисленного типа C++
Максимальная длина __int64 - 18.446.744.073.709.552.046 Максимальная длина __int128 - 340.282.366.920.938.586.008.062.602.462.446.642.046 Последнего типа официально еще нет, но в limits.h он...
C++ 2 разных интервала http://www.cyberforum.ru/cpp-beginners/thread156677.html
Получается что я код написал для 2 одинаковых интервалов, а как сделать чтобы было правильно для 2 разных:wall:#include <stdafx.h> #include <cmath> #include <iostream> #include <iomanip> using...
C++ Как вывести на экран несколько раз В задании надо чтобы целое значение (b) вводилось с клавиатуры 4 раза, соответственно потом (x) и (y) выводятся на экран после каждого ввода вот код: #include <stdafx.h> #include <cmath>... подробнее

Показать сообщение отдельно
fasked
Эксперт С++
4942 / 2522 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
01.08.2010, 11:15
Цитата Сообщение от jonson Посмотреть сообщение
Нет, и еще не ясно почему "нельзя" объявлять глобальные переменные в файле заголовке?
когда ты пишешь строку а-ля #include "file.h"
то фактически все содержимое заголовка вставляется в место включения. вот и получается, что ты вставил несколько одинаковых переменных в свой проект. того же самого эффекта можно достигнуть и без участия заголовочных файлов

a.cpp
C++
1
int a = 0;

main.cpp
C++
1
2
3
4
5
int a = 0;
 
int main() 
{
}


итог тот же:
Код
error LNK2005: "int a" (?a@@3HA) already defined in a.obj
error LNK1169: one or more multiply defined symbols found
выше я уже говорил, что линковщик не понимает, к какой именно переменной ты захочешь обратиться в будущем. отсюда и ошибки.

так что делай, как предложил easybudda.
а лучше вообще обойтись без глобальных переменных.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru