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 |