Problem z wywołaniem funkcji zaimplementowanej w oddzielnym pliku i w przestrzeni nazw
Ostatnio zmodyfikowano 2015-03-30 21:32
NorbertusWielki Temat założony przez niniejszego użytkownika |
Problem z wywołaniem funkcji zaimplementowanej w oddzielnym pliku i w przestrzeni nazw » 2015-03-30 21:06:41 Witam. Napisałem program, który zawiera funkcje zwracająca najmniejszą i największą wartość tablicy jednocześnie. Stworzyłem strukturę danych gdzie utworzyłem zmienne min i max oraz utworzyłem zmienną pudelko by zwrócić wartości. Według kompilatora nie ma tam błędu. Jednak próba wywołania funkcji kończy się niepowodzeniem, a kompilator krzyczy, że w pliku main nie mogę utworzyć zmiennej typu, który określiłem w strukturze lecz w innym pliku. Może ktoś wie dlaczego tak się dzieje? Może mi ktoś coś doradzić? Oto kod z wszystkich trzech plików: 1.funkcje.h: #ifndef H_FUNKCJE #define H_FUNKCJE
namespace function { namespace norbert { struct maxmin; maxmin fun( int tab[], const unsigned size ); } } #endif
2.funkcje.cpp: #include "funkcje.h" #include "maxmin.h"
namespace function { namespace norbert { struct maxmin { int min; int max; }; maxmin pudelko; maxmin fun( int tab[], const unsigned size ) { pudelko.min = tab[ 0 ]; pudelko.max = tab[ 0 ]; for( int i = 0; i < size; i++ ) { if( tab[ i ] > pudelko.max ) tab[ i ] = pudelko.max; } for( int i = 0; i < size; i++ ) { if( tab[ i ] < pudelko.min ) tab[ i ] = pudelko.min; } return pudelko; } } }
3.main.cpp: #include <iostream> #include "funkcje.h" using namespace function; using namespace norbert; int main() { maxmin wynik; int Tablica[ 5 ] = { 12, 12, 3, 1, 4 }; maxmin wynik =::function::norbert::fun( Tablica, 5 ); std::cout << wynik << std::endl; return 0; }
Błąd wygląda następująco : "incomplete type is not allowed" tu jest zrzut ekranu z kompilatorem: http://zapodaj.net/5b9f89f00d802.png.html |
|
pekfos |
» 2015-03-30 21:25:48 Definicja struktury ma być w pliku nagłówkowym. |
|
NorbertusWielki Temat założony przez niniejszego użytkownika |
» 2015-03-30 21:32:53 Dziękuję ci za odpowiedź! Poprawiłem i dałem definicje struktury do pliku funkcje.h. Program zaczął działać. Mała rzecz a tyle nerwów potrafi popsuć , jeszcze raz dzięki! |
|
« 1 » |