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

Wyciągniecie danych z main() do funkcji w klasie

VPS Starter Arubacloud
0 głosów
247 wizyt
pytanie zadane 14 października 2015 w C i C++ przez radek024 Szeryf (77,180 p.)

Witam, mam problem z wyciągnieciem danych z funkcji main do fukcji klasy. Nie mam zielonego pojęcia jak to zrobić, więc proszę o pomoc:
http://pastebin.com/1YHnZcq1
Ten link zawiera kod programu. Chcę aby dane wpisane do konstruktorów były możliwe do pokazania za pomocą funkcji info() w klasie Rower. 

Czyli krócej: chcę wypisać np.: z zmiennej kp "wąskie" za pomocą info() w klasie Rower. Jak to zrobić?
Dziękuję z góry i pozdrawiam.

3 odpowiedzi

0 głosów
odpowiedź 14 października 2015 przez Patrycjerz Mędrzec (192,340 p.)
wybrane 14 października 2015 przez radek024
 
Najlepsza

Po prostu używasz operatora ".", czyli:

void info()
{
	std::cout << kprzednie.r << std::endl;
	//...
}

 

komentarz 14 października 2015 przez radek024 Szeryf (77,180 p.)
wtedy nie bierze mi danych z main(), a z konstruktorów domyślnych ;/
komentarz 14 października 2015 przez Patrycjerz Mędrzec (192,340 p.)

Przecież klasa Rower posiada obiekt klasy Kolo o nazwie kprzednie. Przy stworzeniu obiektu bike wywołujesz konstruktor, który nadaje wartości składowym klasy, więc wszystko powinno działać.

PS: Dlaczego ciągle przypisujesz nowym obiektom wartości innych obiektów? Konstruktor możesz wywołać też tak:

Rower bike(kp, kt, rama, lan);

 

komentarz 14 października 2015 przez radek024 Szeryf (77,180 p.)
Jeżeli możesz - skompiluj kod u siebie, zobaczysz, że nie wypisują się te dane, które powinny. Przypisywanie natomiast jest przydatne, ponieważ kod jest nieco krótszty, np.: gdy chcę użyć funkcji z klasy.
komentarz 14 października 2015 przez Patrycjerz Mędrzec (192,340 p.)
Przecież wszystko działa, tylko wypisany tekst jest przyćmiony resztą z konstruktorów.
komentarz 14 października 2015 przez radek024 Szeryf (77,180 p.)

Co rozumiesz za słowem "przyćmiony"? Taki jest wynik, po usunięciu wartości z konstruktora pojawia się "-"

komentarz 14 października 2015 przez Patrycjerz Mędrzec (192,340 p.)
Przecież masz za myślnikiem wartość liczbową...
komentarz 14 października 2015 przez radek024 Szeryf (77,180 p.)
Tak, ponieważ jest umieszczona wartość. Gdyby jej nie było, wtedy byłby myślnik. W tej sprawie pomógł mi furas, ale Tobie przyznaję najlepszą odpowiedź, natomiast furasowi vote-up'nąłem kolejnych 10 odpowiedzi. Mam nadzieję, że każdy jest zadowolony ;)
+1 głos
odpowiedź 14 października 2015 przez adrian17 Ekspert (344,100 p.)

Rower ma pole "kprzednie". Koło ma pole "rozmiar". Więc żeby wydrukować rozmiar przedniego koła roweru, wystarczy:

cout << kprzednie.rozmiar;

 

komentarz 14 października 2015 przez radek024 Szeryf (77,180 p.)
to samo co wyżej - bierze info  z konstruktora domyślnego ;/
komentarz 14 października 2015 przez adrian17 Ekspert (344,100 p.)
Nie "bierze dane z konstruktora", tylko po prostu z obiektu. Masz dwa obiekty, rowerek i bike, rowerek stworzyłeś konstruktorem domyślnym i go właśnie drukujesz.

Jeśli wciąż coś nie działa jak myślisz że powinno, pokaż obecny kod i czego oczekujesz.
komentarz 14 października 2015 przez radek024 Szeryf (77,180 p.)
kod stoi, tak jak stał i jak wcześniej - wypisanie danych
komentarz 14 października 2015 przez furas Maniak (53,800 p.)
To co poprzednik powiedział - dodajesz zmodyfikowane koła do obiektu `bike`
ale wypisujesz info dla obiektu `rowerek`,  który ma koła domyślne.
komentarz 14 października 2015 przez radek024 Szeryf (77,180 p.)
Dzięki furas! Ale co jeżeli mam kilka obiektów i chcę opisać każdy z nich?
komentarz 14 października 2015 przez furas Maniak (53,800 p.)
Nie rozumie pytania - może coś więcej, albo przykład ?
komentarz 14 października 2015 przez radek024 Szeryf (77,180 p.)
Właściwie pytanie zadałem niepotrzebnie - po posrtu zbyt pochopliwie napisałem. Pytanie miało sens -> co, jeżeli mam kolejny obiekt i chcę pokazać o nim informacje - ale to już zrozumiałem, po prostu uruchamiam nazwazmiennej.info() ;)
0 głosów
odpowiedź 14 października 2015 przez Danieter77 Bywalec (2,470 p.)
Po prostu nie powiedziales funkcji ktora to ktora

np.  Zmienna_Funkcji = Zmienna_Globalna;

Podobne pytania

0 głosów
1 odpowiedź 319 wizyt
pytanie zadane 10 marca 2018 w C i C++ przez dasad33 Użytkownik (710 p.)
0 głosów
1 odpowiedź 230 wizyt
pytanie zadane 27 marca 2016 w C i C++ przez niezalogowany
0 głosów
1 odpowiedź 1,315 wizyt
pytanie zadane 12 lipca 2019 w Java przez manager96 Bywalec (2,050 p.)

92,455 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...