C++/Czym jest obiekt: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Lethern (dyskusja | edycje)
m Wycofano edycje użytkownika 178.42.72.21 (dyskusja). Autor przywróconej wersji to 78.154.95.165.
Linia 39:
int poleInt;
float poleFloat;
std::size_t poleSize_t;
 
//deklarowanie metod
Linia 78 ⟶ 77:
class Kostka{
public:
Kostka()unsigned int wartosc;
std::size_tunsigned wartoscint maks;
std::size_t max;
void Losuj();
};
</source>
 
Po definicji klasy, zdefiniujmy jeszcze metodymetodę zadeklarowane''Losuj()'' zadeklarowaną w tej klasie:
<source lang="cpp">
void Kostka::Kostka(std::size_t argMax = 6) : max((argMax > 6 ? 6 : argMax)) {}
void Kostka::Losuj()
{
wartosc = rand()%maxmaks + 1;
}
</source>
Linia 101 ⟶ 98:
{
Kostka kostkaSzescienna; //utworzenie obiektu
kostkaSzescienna.maks = 6; //określenie maksymalnej ilosci oczek
kostkaSzescienna.Losuj(); //losowanie
cout << "Wylosowano:" << kostkaSzescienna.wartosc << endl;//wypisanie wyniku
Linia 146 ⟶ 144:
void Losuj();
void Wypisz();
std::size_tint DajWartosc();
void ZmienIloscScian(std::size_tunsigned argMax);
protected:
std::size_tunsigned wartosc;
std::size_tunsigned max;
};
 
int Kostka::DajWartosc()
{
return this->wartosc;
}
 
void Kostka::ZmienIloscScian(std::size_tunsigned argMax)
{
if(argMax>6 20)
max = 620;
else
max = argMax;
Linia 167 ⟶ 165:
</source>
 
Zmodyfikowana klasa zezwala tylko na kostki maksymalnie sześciościennedwudziestościenne. Ręczne modyfikacje zmiennej max są zabronione, można tego dokonać jedynie poprzez funkcję ZmienIloscScian, która zapobiega przydzieleniu większej ilości ścianek niż 620. Prywatny jest też atrybut wartość. Przecież nie chcemy aby była ona ustawiona inaczej niż przez losowanie! Dlatego możemy udostępnić jej wartość do odczytu poprzez metodę DajWartosc(), ale modyfikowana może być tylko na skutek działania metody Losuj().
 
== Ćwiczenia ==