Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 17.02.2020
Сообщений: 2

Ошибка 'vector: необъявленный идентификатор'

04.07.2020, 20:39. Показов 3169. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Возникают трудности при передаче вектора в функции находящиеся в другом файле. Понимаю что ошибка в functions.h но как исправить не догоняю не понимаю. В программе вводится массив и в comboBox выбирается действие над ним. По нажатию баттона выводится ответ в текст-бокс BoxOutput. Функции расположены в functions.cpp и передать вектор туда не получается. Это моя первая программа на C++/CLI, до этого только консоль. Помогите разобраться пожалуйста, и если знаете толковую литературу, пожалуйста, посоветуйте. Прошу не валить :3

MainForm.cpp
проблема в 37 строке. Ошибка:
  1. sum: идентификатор не найден
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
38
39
40
41
42
43
44
45
#include <Windows.h>
#include <vector>
#include "MainForm.h"
//тут пропустил чтоб не захломлять
inline System::Void Project2::MainForm::button_Click(System::Object^ sender, System::EventArgs^ e) {
    vector<int> vec;
    String^ line = BoxImput->Text;
    int i = 0;
    while (i != (line->Length)) {
        String^ n = "";
        if (line[i] != ' ') {
            int j = i;
            while ((j != (line->Length))) {
                if (line[j] != ' ') {
                    n += line[j];
                    j++;
                }
                else break;
            }
            int numb = System::Convert::ToDouble(n);
            vec.push_back(numb);
            i = j;
        }
        else
        {
            i++;
        }
    }
    float lineOut = 0;
    int index = comboBox->SelectedIndex;
    if (BoxImput->Text == "") {
        BoxOutput->Text = "Введите массив!";
    }
    else
    {
        switch (index) {
        case 0: lineOut = sum(vec); BoxOutput->Text = System::Convert::ToString(lineOut); break;
        case 1: lineOut = mean(); BoxOutput->Text = System::Convert::ToString(lineOut); break;
        case 2: lineOut = searchMax(); BoxOutput->Text = System::Convert::ToString(lineOut); break;
        case 3: lineOut = searchMin(); BoxOutput->Text = System::Convert::ToString(lineOut); break;
        case 4: lineOut = maxMeet(); BoxOutput->Text = System::Convert::ToString(lineOut); break;
        default: BoxOutput->Text = "Выберите функцию!";
        }
    }
}
functions.h
Две ошибки:
  1. vector: необъявленный идентификатор
  2. тип "int" не требуется
C++
1
2
#pragma once
int sum(vector<int> vec);
functions.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
#pragma once
#include <vector>
 
using namespace std;
 
int sum(vector<int> vec) {          
    int summ = 0;
    for (int i = 0; i < vec.size(); i++)
        summ += vec[i];
    return summ;
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.07.2020, 20:39
Ответы с готовыми решениями:

Ошибка "C2065: необъявленный идентификатор"
Привет ребят. Вопросик один: создал в visual c++ win32 приложение в главном .cpp файле: // project2.cpp: главный файл...

Form1: необъявленный идентификатор
Вчера начал &quot;работать&quot; в Visual Studio с формами (мне посоветовали поставить 2008-ой, хотя я так и не понял почему). Задача не сложная,...

Необъявленный идентификатор у формы
Работаю в Visual studio 2012. В начале файла Form1.h есть оператор #include &quot;Settings.h&quot; Место ошибки: private: System::Void...

2
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
04.07.2020, 21:45
Лучший ответ Сообщение было отмечено WhiteGoblin-2 как решение

Решение

Цитата Сообщение от WhiteGoblin-2 Посмотреть сообщение
MainForm.cpp
проблема в 37 строке. Ошибка:
Добавь:
C++
1
#include "functions.h"
Добавлено через 1 минуту
Цитата Сообщение от WhiteGoblin-2 Посмотреть сообщение
functions.h
Две ошибки:
C++
1
2
3
#pragma once
#include <vector>
int sum(std::vector<int> vec);
1
0 / 0 / 0
Регистрация: 17.02.2020
Сообщений: 2
04.07.2020, 21:54  [ТС]
Спасибо, помогло. Глядя на ответ понимаю что ошибка глупая.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.07.2020, 21:54
Помогаю со студенческими работами здесь

Error C2065: gt: необъявленный идентификатор
Какую библиотеку можно подключить для решения ошибки? Код: private: System::Void button1_Click(System::Object^ sender,...

Необъявленный идентификатор при создании формы
Не могу вывести форму в VS2012. Создаю две формы (одна автоматом создаётся, form1, другую сам, MyForm). При написании кода ничего не...

Ошибки в проекте - HWND: необъявленный идентификатор
Доброго времени суток. Возникла такая проблема: Пишу проект на C++ (Windows Forms), так вот... стоит мне написать код, что то типа этого:...

Необъявленный идентификатор при использовании DataGridView
Пожалуйста помогите исправить ошибку. фул код: #pragma once namespace My312 { using namespace System; using...

Необъявленный идентификатор (связь файлов через extern, include)
-Есть файл hfile.h, в котором содержатся определения пары классов, использующиеся во всей программе. -Есть главный файл mainfile.cpp с...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru