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

Problem z wywołaniem metody za pomocą pętli

Ostatnio zmodyfikowano 2016-01-25 18:02
Autor Wiadomość
Matei
Temat założony przez niniejszego użytkownika
Problem z wywołaniem metody za pomocą pętli
» 2016-01-25 16:59:16
Mam problem z wywołaniem tablicy obiektów za pomocą pętli. Po wpisaniu danych, przechodzi mi do pętli for i "Dzieją się rzeczy niestworzone". Konsola zaczyna szaleć, a komputer pika :D

C/C++
#include<iostream>
#include "Klasa.h"

using namespace std;

int main() {
    int * ile;
    ile = new int;
    cout << "Jak dluga jest kolejka?" << endl;
    cin >> * ile;
    cout << * ile;
    CCzlowiek kolejka[ * ile ];
    for( int i = 0; i <* ile; i++ )
         kolejka[ i ].PrzedstawSie();
   
    delete ile;
}

Jak coś to mogę jeszcze udostępnić kod Klasa.h
P-143993
carlosmay
» 2016-01-25 18:02:15
CCzlowiek kolejka[ * ile ];
Wg standardu rozmiar deklarowanej tablicy statycznej musi być wartością stałą.
Zadeklaruj tablicę dynamiczną lub skorzystaj z STL np. std::vector<>.

np.
C/C++
struct Czlowiek {
    std::string name;
    void PrzedstawSie() {
        std::cin >> name;
    }
    void wypisz() const {
        std::cout << name << std::endl;
    }
};

int main()
{
    int * ile = new int;
    std::cout << "Jak dluga jest kolejka?" << std::endl;
    std::cin >> * ile;
    std::cout << * ile;
    Czlowiek * kolejka = new Czlowiek[ * ile ];
    for( int i = 0; i <* ile; i++ )
         kolejka[ i ].PrzedstawSie();
   
    for( int i = 0; i < * ile; ++i )
         kolejka[ i ].wypisz();
   
    delete[] kolejka;
    delete ile;
    return 0;
}
P-143997
« 1 »
  Strona 1 z 1