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

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

Войти
Регистрация
Восстановить пароль
 
prove
0 / 0 / 0
Регистрация: 18.06.2016
Сообщений: 9
#1

Объявление константы в заголовочном файле - C++

25.06.2016, 16:04. Просмотров 864. Ответов 4
Метки нет (Все метки)

Как объявить константу и массив в заголовочном файле?

C++
1
2
3
4
5
6
7
8
9
10
Map.h
 
#pragma once
 
#include <SFML\Graphics.hpp>
 
extern const int    CY_MAP = 25;
extern const int    CX_MAP = 40;
 
extern sf::String map[CY_MAP];
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Map.cpp
 
#include "Map.h"
 
 
const int   CY_MAP = 25;
const int   CX_MAP = 40;
 
 
sf::String map[CY_MAP] =
{
    "9999999999999999999999999999999999999999",
    "9                                      9",
    "9  s s                                 9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9          sss                         9",
    "9          sss                         9",
    "9          sss                         9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9999999999999999999999999999999999999999",
};
Ошибка C2374 CY_MAP: переопределение; множественная инициализация
Ошибка C2374 CX_MAP: переопределение; множественная инициализация

Добавлено через 1 минуту
Ошибка C2369 map: переопределение; различные индексы
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.06.2016, 16:04
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Объявление константы в заголовочном файле (C++):

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

Объявление поля класса в заголовочном файле - C++
Здравствуйте! Подскажите пожалуйста, как сделать правильно. Есть класс А и класс B, в классе B должно быть поле в виде массива классов А....

Два класса в одном заголовочном файле, предварительное объявление - C++
Дико туплю, никак не могу понять, где косячу. Ситуация - есть два описания классов в одном заголовочном файле (все делается с...

Объявление константы в классе - C++
Мне надо сделать класс в отдельном файле, я не использую main и не могу инициализировать константу вне класса, но мне надо ее использовать...

Объявление константы и массива в классе - C++
Задача: 1. объявить константу в созданном классе и сделать ее видимой для всех методов данного класса; 2. объявить массив, размер...

Setlocale в заголовочном файле - C++
main.cpp #include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;cstring&gt; #include &lt;string&gt; #include &quot;studio.h&quot; using namespace...

4
shilko2013
249 / 226 / 119
Регистрация: 02.04.2016
Сообщений: 886
Завершенные тесты: 1
25.06.2016, 16:11 #2
убери из map.cpp определения констант.

Добавлено через 16 секунд
или #define
0
prove
0 / 0 / 0
Регистрация: 18.06.2016
Сообщений: 9
25.06.2016, 16:14  [ТС] #3
Хм, теперь другие ошибки
Ошибка LNK2005 "class sf::String * map" (?map@@3PAVString@sf@@A) уже определен в Map.obj
Ошибка LNK1169 обнаружен многократно определенный символ - один или более
0
shilko2013
249 / 226 / 119
Регистрация: 02.04.2016
Сообщений: 886
Завершенные тесты: 1
25.06.2016, 16:16 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
вот что получится
C++
1
2
3
4
5
6
7
8
9
10
11
Map.h
 
#pragma once
 
#include <SFML\Graphics.hpp>
 
const int   CY_MAP = 25;
const int   CX_MAP = 40;
 
 
extern sf::String map[CY_MAP];
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Map.cpp
 
#include "Map.h"
 
 
sf::String map[CY_MAP] =
{
    "9999999999999999999999999999999999999999",
    "9                                      9",
    "9  s s                                 9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9          sss                         9",
    "9          sss                         9",
    "9          sss                         9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9999999999999999999999999999999999999999",
};
Добавлено через 1 минуту
Это объяви в map.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
sf::String map[CY_MAP] =
{
    "9999999999999999999999999999999999999999",
    "9                                      9",
    "9  s s                                 9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9          sss                         9",
    "9          sss                         9",
    "9          sss                         9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9999999999999999999999999999999999999999",
};
1
prove
0 / 0 / 0
Регистрация: 18.06.2016
Сообщений: 9
25.06.2016, 16:26  [ТС] #5
Получилось, спасибо большое

Добавлено через 5 минут
Вот так у меня Map.h

C++
1
2
3
4
5
6
7
8
9
10
11
Map.h
 
#pragma once
 
#include <SFML\Graphics.hpp>
 
const int   CY_MAP = 25;
const int   CX_MAP = 40;
 
 
extern sf::String map[CY_MAP];
и Map.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include "Map.h"
 
 
sf::String map[CY_MAP] =
{
    "9999999999999999999999999999999999999999",
    "9                                      9",
    "9  s s                                 9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9          sss                         9",
    "9          sss                         9",
    "9          sss                         9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9                                      9",
    "9999999999999999999999999999999999999999",
};
теперь нет ошибок
0
25.06.2016, 16:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.06.2016, 16:26
Привет! Вот еще темы с ответами:

Переменная в заголовочном файле - C++
//qwer.h class qwer { public: extern int a; }; //qwer.cpp #include &quot;qwer.h&quot;

Структура в заголовочном файле - C++
Код .h: // file.h #pragma once struct Worker { char name; int cdate; int vdate; char post;

Функции в заголовочном файле - C++
Почему нельза задать тело функции в .h файле??? например(header.h): #ifndef HEADER_H #define HEADER_H void f(){} #endif //...

Создание структуры в заголовочном файле - C++
Доброго времени суток! Решил заняться разработкой приложений, сейчас делаю небольшую программу, библиотека SFML. Вопрос: Я создал...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru