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

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

25.04.2013, 09:39. Просмотров 3171. Ответов 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.
Но линковщик выдает ошибки:
Код
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.04.2013, 09:39
Ответы с готовыми решениями:

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

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

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

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

21
1 / 1 / 0
Регистрация: 13.02.2013
Сообщений: 29
25.04.2013, 20:38  [ТС] 21
А, ок. В общем Visual Studio такой Visual Studio...
0
Модератор
Эксперт по электронике
8231 / 6098 / 814
Регистрация: 14.02.2011
Сообщений: 21,181
25.04.2013, 20:48 22
Цитата Сообщение от UrbanLynx Посмотреть сообщение
Visual Studio такой Visual Studio...
это они переумничали
хотели создать быструю компиляцию
типа не компилировать все подряд если изменение всего в одной строчке
но иногда эта система дает сбой
как это было у тебя, запомнила старые ошибки и давай их гнать
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.04.2013, 20:48

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

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

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

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


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

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

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