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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
#pragma
Временно недоступен
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
#1

Невозможно поместить строку map<string,float>pairs_map; в .h-файл - C++

30.05.2009, 14:27. Просмотров 623. Ответов 7
Метки нет (Все метки)

Делаю проект,есть 3 файла :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// project_header.h
#ifndef PROJECT_HEADER_H_INCLUDED
#define PROJECT_HEADER_H_INCLUDED
 
#include <iostream>
#include <map>
#include <iterator>
#include <string>
#include <cctype>
 
using namespace std;
 
map<string,float>pairs_map;
void map_filler(map<string,float>&m);
 
 
#endif // PROJECT_HEADER_H_INCLUDED
C++
1
2
3
4
5
6
7
8
// 6.6.3.cpp
#include "project_header.h"
 
 
void map_filler(map<string,float>&m)
{
  // ...
}
C++
1
2
3
4
5
6
7
// main.cpp
#include "project_header.h"
 
int main()
{
    // ...
}
Этот проект не компилируется,в чём дело?Ошибка:

obj/Debug/main.o||In function `main':|
/media/Part2/C++/Projects/CodeBlocks/6.6/main.cpp|3|multiple definition of `pairs_map'|
obj/Debug/6.6.3.o:/media/Part2/C++/Projects/CodeBlocks/6.6/6.6.3.cpp|5|first defined here|
||=== Build finished: 2 errors, 0 warnings ===|


Если поместить объявление в main функцию,то всё работает.Может,это определение,которое не может быть в заголовочном файле?В чём тут ошибка?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2009, 14:27     Невозможно поместить строку map<string,float>pairs_map; в .h-файл
Посмотрите здесь:

C++ float vs string
C++ map <string[],double>
C++ сохранение/чтение map<string,string*> в файл
c++ string to float C++
C++ Из float в string
Map и string C++
C++ Ошибка. Невозможно преобразовать CString в float
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
FunDuck
688 / 379 / 4
Регистрация: 22.01.2009
Сообщений: 1,135
30.05.2009, 14:49     Невозможно поместить строку map<string,float>pairs_map; в .h-файл #2
Определяешь pairs_map несколько раз. Можно взглянуть на код main()?
#pragma
Временно недоступен
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
30.05.2009, 14:59  [ТС]     Невозможно поместить строку map<string,float>pairs_map; в .h-файл #3
Так я его и привел!main пустая ещё ))
FunDuck
688 / 379 / 4
Регистрация: 22.01.2009
Сообщений: 1,135
30.05.2009, 15:03     Невозможно поместить строку map<string,float>pairs_map; в .h-файл #4
Что то ты с include намудрил... файл 6.6.3.срр вообще не подключается....
Humanitis
172 / 164 / 6
Регистрация: 12.01.2009
Сообщений: 430
30.05.2009, 16:45     Невозможно поместить строку map<string,float>pairs_map; в .h-файл #5
#pragma,
C++
1
extern map<string,float>pairs_map;
?
FunDuck
688 / 379 / 4
Регистрация: 22.01.2009
Сообщений: 1,135
30.05.2009, 16:50     Невозможно поместить строку map<string,float>pairs_map; в .h-файл #6
Достаточно будет функцию map_filler в project_header.h перенести.
#pragma
Временно недоступен
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
30.05.2009, 17:02  [ТС]     Невозможно поместить строку map<string,float>pairs_map; в .h-файл #7
Humanitis, а почему в заголовок-то поместить эту строку нельзя без extern?Это не объявление,а определение,поэтому?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2009, 17:36     Невозможно поместить строку map<string,float>pairs_map; в .h-файл
Еще ссылки по теме:

C++ Как вставить элемент и вывести элементы на экран в map<string, map<string,int>> ?
Конвертирование из vector<string> в map C++
C++ Преобразование map в string
Работа с map<string, map<string, string>> C++
Есть ли аналог Map <String,String> чтобы передавать его как указатель на данные? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Humanitis
172 / 164 / 6
Регистрация: 12.01.2009
Сообщений: 430
30.05.2009, 17:36     Невозможно поместить строку map<string,float>pairs_map; в .h-файл #8
Цитата Сообщение от #pragma Посмотреть сообщение
Это не объявление,а определение,поэтому?
да
Yandex
Объявления
30.05.2009, 17:36     Невозможно поместить строку map<string,float>pairs_map; в .h-файл
Ответ Создать тему
Опции темы

Текущее время: 20:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru