Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.60/35: Рейтинг темы: голосов - 35, средняя оценка - 4.60
1 / 1 / 0
Регистрация: 13.02.2013
Сообщений: 29

Функция уже определена в другом файле

25.04.2013, 09:39. Показов 7461. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Который день бьюсь и не могу найти ответа, подскажите, если знаете.
Есть sparseMatrix.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
29
30
31
32
33
34
35
36
37
38
39
#pragma once
 
#include <vector>
#include <iostream>
#include <iomanip>
#include <sstream>
 
using namespace std;
 
class RowFormatMatrix
{
public:
    RowFormatMatrix(int c=0, int r=0):col(c),row(r),ia(0),ja(0),an(0){};
    RowFormatMatrix(const vector<int>& i, const vector<int>& j, const vector<double>& n, int c, int r):ia(i),ja(j),an(n),col(c),row(r){};
    RowFormatMatrix(ostream& ins);
    ~RowFormatMatrix(){};
 
    friend RowFormatMatrix operator+(const RowFormatMatrix& a, const RowFormatMatrix& b);
    friend void printUsualMatrix(const RowFormatMatrix& matrix);
    friend void symbolicPart(const RowFormatMatrix& a, const RowFormatMatrix& b, RowFormatMatrix& c);
    friend void numericalPart(const RowFormatMatrix& a, const RowFormatMatrix& b, RowFormatMatrix& c);
private:
    vector<int> ia; // номер компонента в ja и an, с которого начинается текущая строка
    vector<int> ja; // номера столбцов
    vector<double> an;
    int col, row;
};
 
void symbolicPart(const RowFormatMatrix& a, const RowFormatMatrix& b, RowFormatMatrix& c){...}
 
void numericalPart(const RowFormatMatrix& a, const RowFormatMatrix& b, RowFormatMatrix& c){...}
 
RowFormatMatrix operator+(const RowFormatMatrix& a, const RowFormatMatrix& b){...}
 
void enterUsualMatrix(RowFormatMatrix& matrix){...}
 
void enterRowFormatMatrix(RowFormatMatrix& matrix){...}
 
void printUsualMatrix(const RowFormatMatrix& matrix){...}
Его я включаю в другие файлы, скажем main.cpp, support.h и support.cpp.
Но линковщик выдает ошибки:
Code
1
2
3
4
5
6
1>support.obj : error LNK2005: "void __cdecl symbolicPart(class RowFormatMatrix const &,class RowFormatMatrix const &,class RowFormatMatrix &)" (?symbolicPart@@YAXABVRowFormatMatrix@@0AAV1@@Z) уже определен в main.obj
1>support.obj : error LNK2005: "void __cdecl numericalPart(class RowFormatMatrix const &,class RowFormatMatrix const &,class RowFormatMatrix &)" (?numericalPart@@YAXABVRowFormatMatrix@@0AAV1@@Z) уже определен в main.obj
1>support.obj : error LNK2005: "class RowFormatMatrix __cdecl operator+(class RowFormatMatrix const &,class RowFormatMatrix const &)" (??H@YA?AVRowFormatMatrix@@ABV0@0@Z) уже определен в main.obj
1>support.obj : error LNK2005: "void __cdecl enterUsualMatrix(class RowFormatMatrix &)" (?enterUsualMatrix@@YAXAAVRowFormatMatrix@@@Z) уже определен в main.obj
1>support.obj : error LNK2005: "void __cdecl enterRowFormatMatrix(class RowFormatMatrix &)" (?enterRowFormatMatrix@@YAXAAVRowFormatMatrix@@@Z) уже определен в main.obj
1>support.obj : error LNK2005: "void __cdecl printUsualMatrix(class RowFormatMatrix const &)" (?printUsualMatrix@@YAXABVRowFormatMatrix@@@Z) уже определен в main.obj
Как такое может быть? Ведь есть защита, пробовал и ifndef'ы тоже.
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.04.2013, 09:39
Ответы с готовыми решениями:

Платформа 8.3.11 Не победить ошибку - процедура или функция уже определена
В 8.3.11 появились очень интересные возможности по работе с расширениями. С выходом первого же тестового релиза пытаюсь использовать новую...

Ошибка "Функция-член уже определена или объявлена"
Здравствуйте! Делаю класс для работы с векторами (Vector3) При попытке скомпилировать почти для каждого метода выдает ошибку...

Сообщение об ошибке "функция-член уже определена"
Вот код #include &lt;iostream&gt; using namespace std; class Matrix { private: int **Array; int nstr, nstl; public:

21
1 / 1 / 0
Регистрация: 13.02.2013
Сообщений: 29
25.04.2013, 20:38  [ТС]
Студворк — интернет-сервис помощи студентам
А, ок. В общем Visual Studio такой Visual Studio...
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,874
25.04.2013, 20:48
Цитата Сообщение от UrbanLynx Посмотреть сообщение
Visual Studio такой Visual Studio...
это они переумничали
хотели создать быструю компиляцию
типа не компилировать все подряд если изменение всего в одной строчке
но иногда эта система дает сбой
как это было у тебя, запомнила старые ошибки и давай их гнать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.04.2013, 20:48
Помогаю со студенческими работами здесь

Ошибка - "Функция _main уже определена"
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; void check_weekday(string day) { if (day == &quot;Понедельник&quot; || day ==...

Локальная переменная или функция с именем "ran" уже определена в этой области
Заданы массивы А1(6), А2(7), А3(4), А4(6). Найти минимальное значение положительных чисел массива и определить максимальное среди них....

Функция не определена. Хотя определена. =)
Добрый день! Есть несколько чекбоксов. На каждый из чекбоксов добавлено свойство onclick=&quot;функция&quot;. Firebug пишет do_okrug...

Переменная уже определена в Form_5.obj
Здравствуйте, я наткнулся на следующую проблему и не могу решить. Вот имеется код файла Form_5.h: #ifndef _FORM5_H #define _FORM5_H ...

Локальная переменная уже определена в этой области
Доброго времени суток, почему если переменная объявлена в первой метке свича, то она будет доступна во всех других? Если у меня в...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru