Wpis z mikrobloga

@erwit: klient musi mieć właściwość typu konto, tworzysz obiekt konto i przy tworzeniu obiektu klient przypisujesz obiekt konto do odpowiedniej właściwości
  • Odpowiedz
@erwit: zrób pole w klasie klient. Niech będzie referencją do kont. Podczas konstrukcji zainicjuj referencję na liście inicjalizacyjnej. Jeśli Ci zależy, żeby obiekt Konta zawierał się w kliencie, to wtedy zrób pole, które będzie tylko obiektem Konta.
  • Odpowiedz
@erwit: dżaper @japer chyba bardziej ogarnia niż ja, ale na stackoverflow było coś takiego, i o tym chyba mówiłem :)

It will be initialized by its default constructor. If you want to use a different constructor, you might have something like this:
  • Odpowiedz
@erwit: jeśli chcę dodać do klasy obiekt innej klasy to muszę zrobić jedną rzecz. Jeśli klasa nie ma konstruktora domyślnego (konstruktor bezparametrowy) to musimy ten obiekt inicjalizować. Robimy to w konstruktorze klasy, gdzie zawiera się obiekt.

Zakładam, że konstruktor klasy Konto przyjmuje dwa argumenty - id i balans a nazwa pola w klasie klient to k.

Klient::Klient() : k("moje id", 666) { jakiś kod... }
  • Odpowiedz
@erwit: to coś po dwukropku nazywamy listą inicjalizacyjną. W tym miejscu można ustalić początkową wartość obiektów. Dobrą praktyką jest korzystanie z tego zamiast przypisania. Swoją drogą obiekty stałe można tylko inicjalizować poprzez tą listę, jeżeli masz je w klasie :>.
  • Odpowiedz
@erwit: klasa musi zawierać instancję obiektu, albo wskaźnik lub referencję na obiekt. Po prostu zrób bo tak, jak mówiłem - pole, które jest instancją konta i wywołujesz konstruktor w liście.
  • Odpowiedz