Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Działania na klasach, metody, wyświetlanie elementów.

Ostatnio zmodyfikowano 2013-04-29 17:53
Autor Wiadomość
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?
C/C++
#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;
}
P-81486
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.
P-81487
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?
P-81497
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 » Programowanie obiektowe, C++Podstawy dział kursu
P-81508
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.
P-81511
pekfos
» 2013-04-29 17:21:27
Dalej przekazujesz argument n w konstruktorze i go nie używasz.
P-81512
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?
P-81513
pekfos
» 2013-04-29 17:29:37
Wystarczy, że napiszesz poprawny konstruktor (czyt.: konstruktor, który coś robi).
P-81514
« 1 » 2
  Strona 1 z 2 Następna strona