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

пара ошибок при риализации графа - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Очередная сортировка структуры http://www.cyberforum.ru/cpp-beginners/thread318130.html
Подобных вопросов были тонны, и тонны еще будут. Есть прога, кривая и написанная собственноручно. Написать ее ума хватило, а вот чтоб откомпилировать... Описание: Имеется файл со структурой. Научить прогу писать, дополнять и внятно выводить результат чтения сего файла получилось. На сортировке все застопорилось - не пойму никак, где у меня написано не правильно, ибо плоховато понимаю саму...
C++ Проверить, есть ли в матрице хотя бы одна строка, содержащая положительный элемент, и найти ее номер . Проверить, есть ли в матрице хотя бы одна строка, содержащая положительный элемент, и найти ее номер http://www.cyberforum.ru/cpp-beginners/thread318125.html
C++ Найти сумму и число тех элементов заданного массива X1,X2, … ,Xn, которые попадают на заданный отрезок.
1. чНайти сумму и число тех элементов заданного массива X1,X2, … ,Xn, которые попадают на заданный отрезок.
Найти номер первого максимального элемента среди отрицательных элементов, расположенных до первого элемента, большего Т. C++
Задан целочисленный одномерный массив a из n элементов. Найти номер первого максимального элемента среди отрицательных элементов, расположенных до первого элемента, большего Т.
C++ Найти среднее арифметическое неотрицательных элементов матрицы, http://www.cyberforum.ru/cpp-beginners/thread318122.html
Найти среднее арифметическое неотрицательных элементов матрицы, а также подсчитать, сколько таких элементов в каждой отдельно взятой строке матрицы. Общие замечания • Практически во всех задачах упоминается некая матрица. В таких случаях формулировка задачи должна начинаться со слов: «Дана матрица …». • Работать только с массивами с переменными границами, как мы это делали во...
C++ Структура, работа с файлом Дан файл Assort, содержащий сведения об игрушках: указывается название игрушки, ее стоимость в рублях и возрастные границы (например, игрушка может предназначаться для детей от двух до пяти лет), Получить название самой дорогой игрушки для детей до четырех лет. подробнее

Показать сообщение отдельно
blackbanny
129 / 116 / 2
Регистрация: 14.11.2010
Сообщений: 707

пара ошибок при риализации графа - C++

12.06.2011, 11:46. Просмотров 415. Ответов 6
Метки (Все метки)

пишу реализацию M-графа, вроде все правильно, но выскакивает 4 ошибки:
Код
1>MatrixGraph.obj : error LNK2005: "public: __thiscall MatrixGraph::MatrixGraph(int)" (??0MatrixGraph@@QAE@H@Z) already defined in main.obj
1>MatrixGraph.obj : error LNK2005: "public: virtual bool __thiscall MatrixGraph::hasArc(int,int)const " (?hasArc@MatrixGraph@@UBE_NHH@Z) already defined in main.obj
1>MatrixGraph.obj : error LNK2005: "public: virtual void __thiscall MatrixGraph::addArc(int,int)" (?addArc@MatrixGraph@@UAEXHH@Z) already defined in main.obj
1>C:\Documents and Settings\budkа\Мои документы\Visual Prolog Projects\Graf\Debug\Graf.exe : fatal error LNK1169: one or more multiply defined symbols found
вот сам код:
main.cpp
C++
1
2
3
4
5
6
7
#include <iostream>
#include "MatrixGraph.cpp"
using namespace std;
void main()
{
    MatrixGraph graph(10);
}
graph.h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#pragma once
class Graph
{
public:
    //Функция addArc позволяет добавить к графу новую дугу, 
    //ведущую из вершины с номером from в вершину с номером to.
 
    virtual void addArc(int from, int to) = 0;
 
    //Функция hasArc позволяет проверить, имеется ли в графе дуга ведущая
    //из вершины с номером from в вершину с номером to.
 
    virtual bool hasArc(int from, int to) const = 0;
 
    //Функция vertexCount выдает число вершин графа
//    virtual int vertexCount() const = 0;
};
MatrixGraph.h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "graph.h"
class MatrixGraph: public Graph
{
    bool **graph;
    int vertexNumber;
 
public:
    //Конструктор с параметрами - количество вершин графа.
    MatrixGraph(int V);
 
    //Количество вершин постоянно и содержится в поле vertexNumber
    //int vertexCount() const (return vertexNumber;}
 
    //Остальные виртуальные функции, реальзацияю которых требуется
    //предоставить при определении конкретного представлениия графа
    void addArc(int from, int to);
    bool hasArc(int from, int to) const;
};
MatrixGraph.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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include "MatrixGraph.h"
//Реализация конструктора - заказ и инициализация памяти 
//под двумерный массив логических значений
MatrixGraph::MatrixGraph(int V)
{
    graph = new bool*[vertexNumber = V];
    for (int i = 0; i < V; i++)
    {
        bool *row = graph[i] = new bool[V];#include "MatrixGraph.h"
//Реализация конструктора - заказ и инициализация памяти 
//под двумерный массив логических значений
MatrixGraph::MatrixGraph(int V)
{
    graph = new bool*[vertexNumber = V];
    for (int i = 0; i < V; i++)
    {
        bool *row = graph[i] = new bool[V];
        for (int j = 0; j < V; j++)
        {
            row[j] = false;
        }
    }
}
 
bool MatrixGraph::hasArc(int from, int to) const
{
    if (from < 0 || from >= vertexNumber || to < 0 || to >= vertexNumber)
        return false; //Неправильно заданы номера вершин
    return graph[from][to];
}
 
void MatrixGraph::addArc(int from, int to)
{
    if (from < 0 || from >= vertexNumber || to < 0 || to >= vertexNumber)
        return; //Невозможно добавить дугу
    graph[from][to] = true;
}
        for (int j = 0; j < V; j++)
        {
            row[j] = false;
        }
    }
}
 
bool MatrixGraph::hasArc(int from, int to) const
{
    if (from < 0 || from >= vertexNumber || to < 0 || to >= vertexNumber)
        return false; //Неправильно заданы номера вершин
    return graph[from][to];
}
 
void MatrixGraph::addArc(int from, int to)
{
    if (from < 0 || from >= vertexNumber || to < 0 || to >= vertexNumber)
        return; //Невозможно добавить дугу
    graph[from][to] = true;
}
может в main неправильно конструктор вызываю...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru