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

funkcja zwracająca typ ze struktury

Mały hosting, OGROMNE możliwości
0 głosów
707 wizyt
pytanie zadane 4 grudnia 2015 w C i C++ przez dichloroetylobenzen Użytkownik (850 p.)

Hej, mam zadanie polegające na napisaniu struktury Osoba w której umieszczam m.in. zmienną int wzrost, w main'ie tworze obiekt - tablice Osoba tab[10], gdzie inicjalizuje go danymi i potem mam napisac funkcje która znajdzie osobe o najwyższym wzroście. Mam problem ze zwrotem danych w tej funkcji. Zwracana zmienna ma być typu Osoba. 

Osoba najwyzszy(Osoba *tab)
{  Osoba naj=tab[0];
    for (int i=0; i<10; i++)
    {
        if (tab[i].wzrost>naj)
            naj=tab[i].wzrost;
    }


    return naj; }

Podpowie ktoś co poprawić? Bo nie za bardzo wiem jak się obchodzić z tymi strukturami. Ciągle wypisuje mi bład  no match for 'operator=' in 'naj = (tab + ((sizetype)(((unsigned int)i) * 16u)))->Osoba::wzrost'

3 odpowiedzi

0 głosów
odpowiedź 4 grudnia 2015 przez Avernis Nałogowiec (27,400 p.)

A czy ze strukturami nie jest jak z klasami? 

Przy okazji, w strukturach nie można wykonywać żadnych operacji oprócz przypisania, np. int x = 0;

struct Osoba
{
    int zarabistaOsoba;    
};

Osoba osoba;

osoba.zarobistaOsoba = 69;

 

komentarz 5 grudnia 2015 przez criss Mędrzec (172,570 p.)
edycja 5 grudnia 2015 przez criss
Oczywiście, że można. W C++ między strukturami i klasami jedyną różnicą jest to, że w klasach domyślnie wszystko jest rpivate, a w struktorach - public. Poza tym wszystko jest dozwolone: listy inicjalizacyjne, dziedziczenia, funkcje wirtualne i czysto wirtualne itd...
komentarz 5 grudnia 2015 przez Avernis Nałogowiec (27,400 p.)
Dziwne, a jak ja próbowałem, to nie działało xD
0 głosów
odpowiedź 5 grudnia 2015 przez Rafajah Bywalec (2,090 p.)

Próbowałeś czegoś takiego?:

 

if (tab[i].wzrost>naj.wzrost)
            naj.wzrost=tab[i].wzrost;

 

Porównujesz typ Osoba z typem (prawdopodobnie) int. Co prawda nie wiem czy tak można ale nie wydaje mi się ;)

0 głosów
odpowiedź 5 grudnia 2015 przez criss Mędrzec (172,570 p.)
Co właściwie chciałeś osiągnać przypisując do zmiennej typu Osoba, składową wzrost (która zapewne nie jest typu Osoba skoro jest składową tej klasy :D).

Btw. tablica to nie obiekt. Tworzać tablice, tworzysz <rozmiar tablicy> obiektów, a sama tablica jest po prostu wskaźnkiem.

Podobne pytania

0 głosów
1 odpowiedź 281 wizyt
pytanie zadane 4 stycznia 2016 w C i C++ przez GameFreak Początkujący (450 p.)
0 głosów
1 odpowiedź 437 wizyt
pytanie zadane 19 stycznia 2023 w C i C++ przez krzysztof.polak Nowicjusz (120 p.)
0 głosów
1 odpowiedź 1,598 wizyt

93,715 zapytań

142,629 odpowiedzi

323,261 komentarzy

63,258 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...