• 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

0 głosów
180 wizyt
pytanie zadane 14 października 2015 w C i C++ przez radek024 Szeryf (75,200 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,440 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 (75,200 p.)
wtedy nie bierze mi danych z main(), a z konstruktorów domyślnych ;/
komentarz 14 października 2015 przez Patrycjerz Mędrzec (192,440 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 (75,200 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,440 p.)
Przecież wszystko działa, tylko wypisany tekst jest przyćmiony resztą z konstruktorów.
komentarz 14 października 2015 przez radek024 Szeryf (75,200 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,440 p.)
Przecież masz za myślnikiem wartość liczbową...
komentarz 14 października 2015 przez radek024 Szeryf (75,200 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 (306,980 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 (75,200 p.)
to samo co wyżej - bierze info  z konstruktora domyślnego ;/
komentarz 14 października 2015 przez adrian17 Ekspert (306,980 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 (75,200 p.)
kod stoi, tak jak stał i jak wcześniej - wypisanie danych
komentarz 14 października 2015 przez furas Maniak (53,680 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 (75,200 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,680 p.)
Nie rozumie pytania - może coś więcej, albo przykład ?
komentarz 14 października 2015 przez radek024 Szeryf (75,200 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ź 239 wizyt
pytanie zadane 10 marca 2018 w C i C++ przez dasad33 Użytkownik (710 p.)
0 głosów
1 odpowiedź 149 wizyt
pytanie zadane 27 marca 2016 w C i C++ przez niezalogowany
0 głosów
1 odpowiedź 524 wizyt
pytanie zadane 12 lipca 2019 w Java przez manager96 Bywalec (2,010 p.)

86,526 zapytań

135,279 odpowiedzi

300,596 komentarzy

57,276 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...