mordec Temat założony przez niniejszego użytkownika |
Działania na klasach, metody, wyświetlanie elementów. » 2013-04-29 14:08:53 Mam problem, ponieważ piszę sobie ćwiczeniowy program, który ma dodawać 'towary' do klasy za pomocą metody dodaj_towar i wypisywać je za pomocą metody wypisz_towary. Lecz gdy wywołuje wypisanie, wypisuje mi tylko dane obiektu, od którego idzie wskaźnik na metodę. Jak mogę zrobić to, aby wyświetlało mi wszystkie elementy tablic? Chodzi mi o to, że wywołanie metody wyświetla dane wszystkich obiektów, do tej pory dodanych? #include "stdafx.h" #include <iostream> #include <stdio.h> #include <cstdio> #include <string> #include <list> using namespace std; #pragma warning(disable: 4996) class KoszykTowarow { public: int ceny[ 20 ]; string nazwy[ 20 ]; int n; KoszykTowarow( int n ) { }; void dodaj() { for( int i = 0; i < n; i++ ) { printf( "Podaj nazwe towaru:\n" ); scanf( "%s", nazwy[ i ] ); printf( "Podaj cene towaru:\n" ); scanf( "%d", & ceny[ i ] ); } } void wyswietl() { for( int i = 0; i < n; i++ ) { printf( "Nazwa:%s\n", nazwy[ i ] ); printf( "Cena:%d\n", ceny[ i ] ); } } }; int main() { KoszykTowarow * s = new KoszykTowarow( 3 ); s->dodaj(); s->wyswietl(); system( "pause" ); return 0; }
|
|
akwes |
» 2013-04-29 14:31:58 Ogólnie strasznie kiepsko jest to napisane. Ale odpowiadając na Twoje pytanie: nie wypisuje Ci towarów, ponieważ nigdy nie ustawiasz zmiennej "m" aby była indeksem pierwszego elementu tablicy. |
|
mordec Temat założony przez niniejszego użytkownika |
» 2013-04-29 16:47:16 Poprawiłem już kod, i działa, ale mam jeszcze jedno pytanie, jak w konstruktorze przekazać parametr pętli for(int n), aby podczas tworzenia dynamicznego obiektu, był on przekazywany do tej zmiennej i aby w dowolnej metodzie można jej użyć w pętli czy też innym działaniu? |
|
akwes |
» 2013-04-29 17:14:13 Przecież przekazujesz parametr n w konstruktorze, tylko go potem nie używasz. Ogólnie, ( this->n, n; ) wydaje mi się, że nie wiesz co robisz. Przejrzyj sobie Podstawy |
|
mordec Temat założony przez niniejszego użytkownika |
» 2013-04-29 17:20:07 No teraz poprawiłem tak jak wcześniej próbowałem, ze w pętli for mam n i gdy kompiluje i uruchamiał pętla się nie wykonuje, jakby nie widziała wczytanej liczby do zmiennej n. Postawienie BreakPointa przy pętli również nie wykazuje wykrywania tej liczby 3 którą przekazuje, a BreakPoint przy konstruktorze pokazuje, że tę 3 pobrało. |
|
pekfos |
» 2013-04-29 17:21:27 Dalej przekazujesz argument n w konstruktorze i go nie używasz. |
|
mordec Temat założony przez niniejszego użytkownika |
» 2013-04-29 17:22:37 W takim razie jak mam napisać tę metodę z funkcją for aby wszystko działało? |
|
pekfos |
» 2013-04-29 17:29:37 Wystarczy, że napiszesz poprawny konstruktor (czyt.: konstruktor, który coś robi). |
|
« 1 » 2 |