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

Pierwszy wiekszy Projekt - Funkcje zwracające obiekty ? Obiekty globalne ?

Ostatnio zmodyfikowano 2017-02-23 06:08
Autor Wiadomość
unbearable0
Temat założony przez niniejszego użytkownika
Pierwszy wiekszy Projekt - Funkcje zwracające obiekty ? Obiekty globalne ?
» 2017-02-23 00:12:05
Witam!
W końcu zdecydowałem się na zajęcie się jakimś większym problemem postanowiłem napisac program do obslugi pizzeri w konsoli. Program na chwilę obecną umożliwia podanie podstawowych danych klienta zapisanie ich w pliku .txt oraz sprawdzenie czy taki klient istnieje i jezeli istnieje to pobraniu jego danych z pliku.
Problem jest taki, że chyba nie do końca to przemyslałem bo wszystkie te funkcje operuja na lokalnych zmiennych. Tzn wewnatrz siebie tworza obiekt klient. Podczas gdy potrzebuje tego obiektu jako zmiennej globalnej bo bedzie mi potrzebna jako argument funkcji wewnatrz ktorej do klienta bedzie przypisane zamowienie czyli funkcja złoz_zamowienie(class klient)
Czy muszę zmienić wszystkie funkcje tak aby przypisywały wartości do globalnego obiektu czy to można obejść ? Gdzieś wyczytałem, że można to obejść wskaznikami ale nie wiem czy to prawda ?
Jezeli bede wskazywał na konkretną komórkę to przeciez skoro ona jest w niej zmiena lokalna to po wyjsciu z funkcji w której zostala wywołana, może zostać nadpisana bo została zwolniona ?

Jezeli ktoś lubi czytać brzydki kod:

https://github.com/unbearable0/projekt_pizza

P-158146
maly7
» 2017-02-23 00:40:39
Jeśli masz zmienną lokalną np. w mainie i przekazujesz wskaźnik do niej jako argument funkcji to ta funkcja może zmienić jej wartość. Jeśli korzystasz z C++ możesz użyć referencji.

np.:
C/C++
void zmien( int * zmienna )
{
    * zmienna = 5;
}

int main()
{
    int cos = 1;
    cout << "Zmienna \'cos\' przed wywolaniem funkcji: " << cos << endl;
    zmien( & cos );
    cout << "Zmienna \'cos\' po wywolaniu funkcji: " << cos << endl;
}

Wyjście:
Zmienna 'cos' przed wywolaniem funkcji: 1
Zmienna 'cos' po wywolaniu funkcji: 5
P-158147
carlosmay
» 2017-02-23 06:08:30
Alokuj pamięć na obiekt w funkcji i zwróć wskaźnik na ten obiekt.
P-158152
« 1 »
  Strona 1 z 1