Tablica obiektów klas, wyszukiwanie po wartosci

0

mam tablice obiektów klasy KontoBankowe


#include <iostream>

using namespace std;

class KontoBankowe
{
    string nazwisko;
    string NrKonta;
    double saldo;
public:
    int wyszukaj(KontoBankowe tablica[],int dlugoscTablicy,string DoWyszukania);
    KontoBankowe();
    KontoBankowe(string * klient, string * num, double sal);
    void pokaz(string&klient,int liczba) const;
    void deponuj(double kwota);
    void podejmin(double kwota);
};

i chce zrobic metode wyszukującą w tablicy obiekt o zadanej wartosci w tym przypadku nazwisko, tak aby z main moc pokazac saldo konkretnego klienta przy pomocy metody pokaz, stworzylem taka definicje metody

int wyszukaj(KontoBankowe tablica[],int dlugoscTablicy,string DoWyszukania)
{
    int zwrot;
    for(int i=0;i<dlugoscTablicy;i++)
    {
        if (tablica[i].nazwisko=="DoWyszukania")
            zwrot=i;
            break;
    }
        return zwrot;

}

ale nie ma dostepy do prywatnych skladowych klasy, jak to rozwiązać. Tak wyglądało utworzenie tablicy obiektów typu KontoBankowe w main:

KontoBankowe (TablicaKont[ile]);
5

Nazwisko - wystaw odpowiedniego gettera (funkcję zwracającą const referencję do składowej klasy).

Ponadto dla zwiększenia czytelności powinieneś używać std::find_if i algorytmów biblioteki standardowej.

Jeśli chodzi o definicję tablicy - użyj lepiej std::vector, to co robisz to na 99% VLA (o ile ile nie jest stałą znaną w czasie kompilacji), a więc nie jest poprawnym C++.

4

Pieniędzy nie opisuje się liczbami zmiennoprzecinkowymi!
Po co wskaźniki w tym konstruktorze: KontoBankowe(string * klient, string * num, double sal);?

0

możesz mi powiedzieć jak wystawić taką funkcje dla nazwisko i gdzie to póżniej wywoływać, żeby mieć dostęp, czy z main, czy przy pomocy metod? i dlaczego to będzie VLA skoro jest pełna kontrola nad indeksami (brak skomplikowanych operacji na indeksach)?

0

W obecnym kształcie funkcja wyszukaj nie ma sensu. Klasa KontoBankowe reprezentuje jedno konto, więc co chcesz w nim wyszukiwać?

0

chciałem zrobić metode do wyszukiwania konkretnych wartości w utworzonych obiektach klasy

1

Domyślam się.
Możesz np. dodać do klasy KontoBankowe statyczny wektor z kontami i statyczną metodę do wyszukania danego konta, albo stworzyć klasę Bank, która będzie zarządzać kontami (tworzenie/usuwanie/wyszukiwanie/etc.).

1
srk71 napisał(a):

dlaczego to będzie VLA skoro jest pełna kontrola nad indeksami (brak skomplikowanych operacji na indeksach)?

Co ma do tego kontrola nad indeksami? Istotne jest jak definiujesz tablicę, a zgodnie z pierwszym postem mam prawo domniemywać, że robisz VLA, a ile wczytujesz z klawiatury.

0

czyli chodzi o to, że obecnie nie robi się VLA po prostu bo jest niezgodne z nowymi standardami, tylko używa sie vector?

3

VLA jest niezgodne z żadnymi standardami C++. Pomijając bardzo specyficze zastosowania, tak, ogólną radą jest aby ich nie używać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0