Problem z funkcją składową klasy.
Ostatnio zmodyfikowano 2013-03-08 20:05
kanam99 Temat założony przez niniejszego użytkownika |
Problem z funkcją składową klasy. » 2013-03-07 21:35:54 Witam. Mam sobie oto taki kod: Plik ekran.h: #ifndef EKRAN_H #define EKRAN_H #include <string> #include <iostream> class ekran { public: ekran(); void pokaz(); ekran( std::string nazwa, int dlg, int szer, std::string znak ); void czysc(); virtual ~ekran(); protected: private: int dlg; int szer; std::string znak; std::string nazwa; };
#endif
Plik ekran.cpp: #include "ekran.h" #include <string> #include <iostream>
ekran::ekran( std::string nazwa, int dlg, int szer, std::string znak ) : nazwa( nazwa ) , dlg( dlg ) , szer( szer ) , znak( znak ) { std::cout << "Utworzono ekran " << nazwa << " o szerokosci " << szer << " i o dlugosci " << dlg << ". Ramka zostanie stworzona za pomoca znaku:" << znak << std::endl; }
ekran::~ekran() { }
ekran::ekran() { std::cout << "Stworzono ekran bez zadnych wartosci"; }
void ekran::pokaz() { std::cout << "/n/n" << std::endl; std::string ramka = znak; std::string brzeg = znak; int ile = 0; int ile2 = 0; do { std::cout << ramka; ile++; } while( ile != dlg ); ile = 0; ile2 = 0; do { std::cout << znak; do { std::cout << " " << std::endl; ile2++; } while( ile2 != dlg - 2 ); ile++; } while( ile != szer ); } Gdy próbuję wywołać funkcję pokaz() na rzecz już utworzonego obiektu klasy ekran ( np. marian.pokaz() ) który został utworzony tak: ekran marian( "marek", 5, 2, "#" ); program nic nie pokazuje. Jeśli usunę wywołanie funkcji, wszytko działa dobrze. Podejrzewam, że to problem z pętlami, tylko nie wiem w którym miejscu. Pomożecie? |
|
Admixior |
» 2013-03-08 16:13:28 do { std::cout << " " << std::endl; ile2++; } while( ile2 != dlg - 2 );
w skrócie sam się wkopałeś. dlg zawiera liczbę 2 jak od niej odejmiesz 2 to wyjdzie 0. A ile2 zaczyna odliczanie od 1 (wcześniej plusujesz) Zastosuj tutaj najlepiej pętlę for (tutaj jak iw innych przypadkach) i wtedy nie będzie tego typu problemów, bo sprawdzanie będzie na początku a inkrementacja na końcu tuż przed sprawdzaniem; |
|
kanam99 Temat założony przez niniejszego użytkownika |
» 2013-03-08 20:05:39 Dziękuję Ci bardzo. Zamykam :) |
|
« 1 » |