klasy i extern
Ostatnio zmodyfikowano 2009-10-04 21:47
steckel Temat założony przez niniejszego użytkownika |
klasy i extern » 2009-10-04 20:43:44 Witam! Mam problem z deklaracją zmiennej globalnej własnego typu z przedrostkiem 'extern', aby inne pliki źródłowe też ją widziały. main.hpp: #include "class.hpp" extern wiadomosci wiad;
class.hpp: class wiadomosci { private: string lista[ MAX_WIADOMOSCI ]; public: wiadomosci(); void dodaj( string txt ); void pokaz(); };
logi: error C2146: syntax error : missing ';' before identifier 'wiad' error C4430: missing type specifier - int assumed. Note: C++ does not support default-int error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>.\class.cpp(133) : error C2228: left of '.dodaj' must have class/struct/union 1> type is 'int' 1>.\class.cpp(157) : error C2228: left of '.dodaj' must have class/struct/union 1> type is 'int'
|
|
Thud |
» 2009-10-04 21:13:44 Nie wiemy co jest w class.cpp. |
|
steckel Temat założony przez niniejszego użytkownika |
» 2009-10-04 21:23:51 class.cpp: wiadomosci::wiadomosci() { for( int a = 0; a < MAX_WIADOMOSCI; a++ ) { lista[ a ] = ""; } }
void wiadomosci::dodaj( string txt ) { for( int a = 0; a < MAX_WIADOMOSCI - 1; a++ ) { lista[ a ] = lista[ a + 1 ]; } lista[ MAX_WIADOMOSCI - 1 ] = txt; }
void wiadomosci::pokaz() { for( int a = 0; a < MAX_WIADOMOSCI; a++ ) { textprintf_ex( bufor, font, 3 * MARGINES + 2 * PLANSZA_DLUGOSC * PLANSZA_ROZMIAR, MARGINES + a * LINIJKA_H, 0xffffff, - 1, lista[ a ].c_str() ); } }
wiad.dodaj( "WYGRALES" );
Mam nadzieje, że to wszystko co trzeba, bo chyba nie ma sensu wklejać całego kodu. |
|
Thud |
» 2009-10-04 21:27:54 Fail. |
|
steckel Temat założony przez niniejszego użytkownika |
» 2009-10-04 21:35:32 Dołączam class.hpp tylko, że zapomniałem to wkleić na forum. Na pewno nie jest to problemem, bo w main.cpp korzystam z innych klas z class.hpp. |
|
steckel Temat założony przez niniejszego użytkownika |
» 2009-10-04 21:57:19 No to mam najpierw dołączanie class.hpp, a dopiero później jest ta deklaracja, więc powinno widzieć. #ifndef MAIN_HPP #define MAIN_HPP
#include "class.hpp"
extern wiadomosci wiad; #endif
|
|
DejaVu |
» 2009-10-05 18:25:31 plik.cpp: klasa zmienna; plik.hpp: extern klasa zmienna; inny_plik.hpp: #include "plik.hpp" ... void funkcja() { zmienna.metoda(); } |
|
steckel Temat założony przez niniejszego użytkownika |
» 2009-10-05 19:38:01 Wystarczyło dać class wiadomosci; na samym początku. Tak więc problemu już nie ma :) |
|
« 1 » 2 |