zad-3-J.G
unknown
c_cpp
4 years ago
3.5 kB
10
Indexable
#include <iostream>
#include <stdlib.h>
#include <string.h>
using namespace std;
/*
1) Jak wygląda zapis do obiektu?
- Zapisujemy bezpośrednio dane do obiektu.
2) Czy zapis jest podobny do struktury?
- Tak
3) Kto może zapisywać do obiektu?
- W przypadku pól publicznych, każdy.
4) Różnice między klasą a strukturą
- Pola klasy są domyślnie prywatne. (hermetyzacja)
5) Zastanowić się czym klasa różni się w tym wypadku od struktury? Mamy
tylko dane, cechy, atrybuty. Jakaś różnica? Po co nam zatem obiekty?
- Mozna je tworzyc n razy.
6) Jak wygląda odczyt, i kto może czytać z obiektu?
- Pola są publiczne wiec odczyt może się odbywać bezpośrednio z obiektu
- Każdy może czytać z obiektu
7) Jak tworzone i obsługiwane są zmienne obiektowe tego typu?
- Zmienna statyczna inicjalizująca się w momencie deklaracji, w
przeciwieństwie do zmiennej dynamicznej, programista nie ma kontroli nad tym
kiedy taka zmiena zostanie zniszczona.
*/
class Postac {
public:
string rasa;
string imie;
int obrona;
int atak;
int szybkosc;
void odczyt() {
cout << "Gatunek: " << rasa << endl;
cout << "Imię: " + imie << endl;
cout << "Obrona: " + to_string(obrona) << endl;
cout << "Atak: " + to_string(atak) << endl;
cout << "Szybkość: " + to_string(szybkosc) << endl;
}
void ustawRase(string wybranaRasa) { rasa = wybranaRasa; }
void pokazDane() {
/*
1) Czy metoda ma dostęp do wnętrza klasy?
- Tak
2) Omówić metodykę tworzenia identyfikatorów w stylu camelCase oraz
snake_case.
- Identyfikatory w metodyce camelCase są tworzone w taki sposób że
pierwsza litera każdego wyrazu np funkcji (nie licząc pierwszego) jest
pisana z wielkiej litery, w przypadku snake_case wyrazy łączymy za pomocą _
3) Jak działa taka metoda dodawania danych i odczytu?
- pokazDane -> Pobiera dane następnie wyświetla za pomocą cout
- wczytajDane -> zapisuje w klasie wartosci przekazane przez cin
4) Omówić porządek w kodzie dzięki zamknięciu danych w obiektach.
- Dzięki zastosowaniu klas w prosty sposób możemy porządkować logikę
wspólną dla wielu elementów. Dodatkowo umożliwia nam segregację elementów w
sposób logiczny i zwięzły.
5) Sprawdzić ile pamięci zajmuje obiekt.
- Zajmuje 64
*/
cout << "Mój gatunek to " << rasa << endl;
cout << "Nazywam się " + imie << endl;
cout << "Mam takie moce: " << endl;
cout << " 1) Atak: " + to_string(atak) << endl;
cout << " 2) Szybkość: " + to_string(szybkosc) << endl;
cout << " 3) Obrona: " + to_string(obrona) << endl;
}
void wczytajDane() {
cout << "Edycja danych dla " << rasa << endl;
cout << "Wpisz Imię" << endl;
cin >> imie;
cout << "Wpisz Atak" << endl;
cin >> atak;
cout << "Wpisz Szybkość" << endl;
cin >> szybkosc;
cout << "Wpisz Obronę" << endl;
cin >> obrona;
}
};
int main() {
Postac zwiadowca = Postac();
zwiadowca.ustawRase("zwiadowca");
zwiadowca.wczytajDane();
zwiadowca.odczyt();
Postac mag = Postac();
mag.ustawRase("mag");
mag.wczytajDane();
mag.odczyt();
Postac wojownik = Postac();
wojownik.ustawRase("wojownik");
wojownik.wczytajDane();
wojownik.odczyt();
cout << sizeof(zwiadowca);
return 0;
}Editor is loading...