• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C++ Połączenie trzech klas kluczem głównym

Object Storage Arubacloud
0 głosów
188 wizyt
pytanie zadane 27 września 2016 w C i C++ przez rubiikk Obywatel (1,900 p.)

Cześć, pokrótce przedstawię swój problem. Mam program podzielony na plik main.cpp, patient.cpp, patient.h, itd. oraz trzy klasy: Patient, Doctor i Treatment. Chciałbym teraz w klasie Treatment połączyć dwie klasy za pomocą klucza głównego. Czyli w przyszłości w klasie Treatment chciałbym zrobić metodę, która wyświetli mi ID, nazwę, opis, id pacjenta, imię i nazwisko pacjenta, id doktora oraz imię i nazwisko doktora. Jak najprościej osiągnąć taki efekt? Czy mogę używać w klasie innych obiektów/zmiennych?

// treatment.h
#pragma once
#include <string>

class Treatment
{
public:
    Treatment(int id, std::string name = "", std::string description = "")

private:
    int id;
    std::string name;
    std::string description;
};



 

1 odpowiedź

0 głosów
odpowiedź 27 września 2016 przez draghan VIP (106,230 p.)

Może od końca.

Czy mogę używać w klasie innych obiektów/zmiennych?

Tak. Albo podajesz odpowiednie zmienne przez argumenty funkcji albo tworzysz sobie zmienne (obiekty Twoich klas) w klasie - analogicznie jak definiujesz np. std::string name;.

Chciałbym teraz w klasie Treatment połączyć dwie klasy za pomocą klucza głównego. Czyli w przyszłości w klasie Treatment chciałbym zrobić metodę, która wyświetli mi ID, nazwę, opis, id pacjenta, imię i nazwisko pacjenta, id doktora oraz imię i nazwisko doktora. Jak najprościej osiągnąć taki efekt?

Możesz wykorzystać dwie zmienne instancyjne, czyli dodać do klasy pole typu Patient oraz pole typu Doctor.

class Treatment
{
public:
    Treatment(int id, std::string name = "", std::string description = "")
 
private:
    Patient patient;
    Doctor doctor;
    int id;
    std::string name;
    std::string description;
};

Możesz też zrobić inaczej - skoro każdy Twój pacjent oraz lekarz ma swoje unikalne ID, to w klasie Treatment możesz trzymać ich ID. Żeby w metodzie Treatment wykonać jakąś akcję na pacjentach czy lekarzach, potrzebowałbyś jeszcze przekazać przez argument adres wektora, w którym przechowujesz pacjentów czy lekarzy oraz oczywiście mieć jakąś funkcję, która wyszukuje Ci pacjenta czy lekarza po ID.

Podobne pytania

0 głosów
2 odpowiedzi 801 wizyt
pytanie zadane 11 czerwca 2016 w C i C++ przez Kacper Wach Nowicjusz (150 p.)
0 głosów
1 odpowiedź 104 wizyt
pytanie zadane 3 listopada 2018 w C i C++ przez four Użytkownik (720 p.)
0 głosów
1 odpowiedź 142 wizyt
pytanie zadane 10 stycznia 2019 w PHP przez niezalogowany

92,617 zapytań

141,466 odpowiedzi

319,783 komentarzy

61,999 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...