Oto kod:
/////////// edge_element.h /////////////
#define edge_element_h
//**********************************************************************
// File: edge_element_lib.h
//**********************************************************************
//#include "logs.h"
#include "node.h"
//using namespace std;
//////////////////////////// CLASS DEFINITION //////////////////////////
//extern logs log_value;
class edge_element
{
node *ptr_node1;
node *ptr_node2;
edge_element *next;
public:
edge_element(node *node1,node *node2,edge_element *ptr)
{
ptr_node1 = node1;
ptr_node2 = node2;
next = ptr;
}
edge_element(node *node1,edge_element *ptr)
{
ptr_node1 = node1;
ptr_node2 = node1->get_parent();
next = ptr;
}
edge_element *get_ptr_next_edge()
{
return next;
}
};
//////////////////////////// END OF CLASS DEFINITION //////////////////////////
#endif
/////////////edge_list.h/////////////////
#ifndef edge_list_h
#define edge_list_h
#include "node.h"
#include "edge_element.h"
#include <iostream>
class edge_list
{
edge_element *last_added_edge;
int edge_counter;
void set_edge(edge_element *ptr)
{
last_added_edge = ptr;
}
public:
bool add_new_edge(node *node1);
bool add_new_edge(node *node1,node *node2);
edge_list()
{
last_added_edge = NULL;
edge_counter = 0;
}
int get_el_counter()
{
return edge_counter;
}
edge_element *get_last_edge()
{
return last_added_edge;
}
void *delete_edge();
bool clr_edges();
};
#endif
//////////////// node.h /////////////////
#ifndef node_h
#define node_h
#include "edge_list.h"
class node
{
private:
edge_list edg;
int id_node;
node *parent;
public:
bool operator == (node &right_arg)
{
if(id_node == right_arg.id_node)
return true;
else
return false;
}
node *get_parent()
{
return parent;
}
int get_id_node()
{
return id_node;
}
node()
{
//edges.add_new_edge(*this);
}
};
#endif
////////////////// edge_list.cpp ////////////
//*******************************************************
// File: list_lib.cpp
//*******************************************************
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include "edge_list.h"
#include "edge_element.h"
//*******************************************************
bool edge_list::add_new_edge(node *node1)
{
if(node1->get_id_node() > 0 && node1 != NULL && node1->get_parent() != NULL)
{
edge_element *new_edge = new edge_element(node1,last_added_edge);
if(new_edge != NULL)
{
set_edge(new_edge);
edge_counter++;
//log_value.logs_printing("add_to_list:Item added",2);
return true;
}
else
{
//log_value.logs_printing("add_to_list:ERROR",1);
return false;
}
}
else
{
//log_value.logs_printing("add_to_list:ERROR");
return false;
}
}
bool edge_list::add_new_edge(node *node1,node *node2)
{
if(node1 != NULL && node2 != NULL && node1 == node2)
{
edge_element *new_edge = new edge_element(node1,last_added_edge);
if(new_edge != NULL)
{
set_edge(new_edge);
edge_counter++;
//log_value.logs_printing("add_to_list:Item added",2);
return true;
}
else
{
//log_value.logs_printing("add_to_list:ERROR",1);
return false;
}
}
else
{
//log_value.logs_printing("add_to_list:ERROR");
return false;
}
}
//*******************************************************
///////////// main.cpp //////////////
#include "edge_element.h"
#include "edge_list.h"
#include "node.h"
int main()
{}
//////////////////////////////////////////////BLEDY [visual studio]/////////////////////////////////
1>------ Build started: Project: graf, Configuration: Debug Win32 ------
1>Build started 2011-12-18 19:56:56.
1>InitializeBuildStatus:
1> Touching "Debug\graf.unsuccessfulbuild".
1>ClCompile:
1> main.cpp
1>c:\users\mateusz\desktop\graf-zadanie\graf\graf\edge_list.h(11): error C2143: syntax error : missing ';' before ''
1>c:\users\mateusz\desktop\graf-zadanie\graf\graf\edge_list.h(11): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\mateusz\desktop\graf-zadanie\graf\graf\edge_list.h(11): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\mateusz\desktop\graf-zadanie\graf\graf\edge_list.h(14): error C2061: syntax error : identifier 'edge_element'
1>c:\users\mateusz\desktop\graf-zadanie\graf\graf\edge_list.h(22): error C2061: syntax error : identifier 'node'
1>c:\users\mateusz\desktop\graf-zadanie\graf\graf\edge_list.h(23): error C2061: syntax error : identifier 'node'
1>c:\users\mateusz\desktop\graf-zadanie\graf\graf\edge_list.h(23): error C2535: 'bool edge_list::add_new_edge(void)' : member function already defined or declared
1> c:\users\mateusz\desktop\graf-zadanie\graf\graf\edge_list.h(22) : see declaration of 'edge_list::add_new_edge'
1>c:\users\mateusz\desktop\graf-zadanie\graf\graf\edge_list.h(38): error C2143: syntax error : missing ';' before ''
1>c:\users\mateusz\desktop\graf-zadanie\graf\graf\edge_list.h(38): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\mateusz\desktop\graf-zadanie\graf\graf\edge_list.h(39): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\mateusz\desktop\graf-zadanie\graf\graf\edge_list.h(41): warning C4183: 'get_last_edge': missing return type; assumed to be a member function returning 'int'
1>c:\users\mateusz\desktop\graf-zadanie\graf\graf\edge_list.h(16): error C2065: 'last_added_edge' : undeclared identifier
1>c:\users\mateusz\desktop\graf-zadanie\graf\graf\edge_list.h(16): error C2065: 'ptr' : undeclared identifier
1>c:\users\mateusz\desktop\graf-zadanie\graf\graf\edge_list.h(27): error C2065: 'last_added_edge' : undeclared identifier
1>c:\users\mateusz\desktop\graf-zadanie\graf\graf\edge_list.h(40): error C2065: 'last_added_edge' : undeclared identifier
1> edge_list.cpp
1>c:\users\mateusz\desktop\graf-zadanie\graf\graf\node.h(8): error C2146: syntax error : missing ';' before identifier 'edg'
1>c:\users\mateusz\desktop\graf-zadanie\graf\graf\node.h(8): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\mateusz\desktop\graf-zadanie\graf\graf\node.h(8): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1> Generating Code...
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:01.14
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Program tworzy listę połączeń wierzchołków grafu i zatrzymałem się na tym żeby tworzyło się połączenie przy stworzeniu wierzchołka z wierzchołkiem poprzednim.
Z tego co zauważyłem
Program się sypie po dołączeniu edge_list.h do node.h
Proszę o pomoc w rozwiązaniu mojego problemu. Jak ewentualnie powinienem inaczej to zrobić