Poznaj C++ w$ godziny0170

Poznaj C++ w$ godziny0170



Referencje 159

Przekazywanie argumentów funkcji przez referencje

W trakcie godziny 5, „Funkcje”, powiedzieliśmy sobie, że funkcje mają dwa ograniczenia: argumenty są przekazywane przez wartość i że funkcja może zwrócić tylko jedną wartość.

Przekazywanie argumentów przez referencje pozwala na obejście obydwu tych ograniczeń. W C++, przekazywanie przez referencje, może być przeprowadzone na dwa sposoby, z wykorzystaniem wskaźników lub referencji. Każde rozwiązanie ma własną składnię jednak efekt końcowy jest taki sam. Wewnątrz funkcji nie jest tworzona kopia przekazywanego obiektu. Do funkcji przekazywany jest oryginalny obiekt.

Przekazywanie obiektów przez referencje pozwala funkcji na wykonywanie modyfikacji w tych obiektach.

Listing 11.4. tworzy funkcję zamieniającą dwie wartości. Jej parametry są przekazywane przez wartość.

Listing 11.4. Przekazywanie argumentów przez wartość

1:    // Listing 11.4. - przekazywanie przez wartość

2:

3:    #include <iostream.h>

4:

5:    void Zamien(int x, int y) ;

6:

7:    int main()

8:    {

9:    int x = 5, y = 10;

10:

11:    cout « "Main. Przed zamiana, x: " « x « " y: " « y «

"\n" ;

12:    Zamień(x, y);

13:    cout « "Main. Po zamianie, x: •• « x « " y: " « y « "\n";

14:    return 0;

15:    }

16:

17:    void Zamień(int x, int y)

18: {

19:    int temp;

20:

21:    cout « "Zamień. Przed zamiana, x: " « x « " y: " « y «

k*"\n";

22:

23:    temp = x;

24:    x = y;

25:    y = temp;

26:

27:    cout « "Zamień. Po zamianie, x: " « x « " y: " « y «

k*"\n" ;

Przekazywanie argumentów funkcji przez referencje

W trakcie godziny 5, „Funkcje", powiedzieliśmy sobie, że funkcje mają dwa ograniczenia: argumenty są przekazywane przez wartość i że funkcja może zwrócić tylko jedną wartość.

Przekazywanie argumentów przez referencje pozwala na obejście obydwu tych ograniczeń. W C++, przekazywanie przez referencje, może być przeprowadzone na dwa sposoby, z wykorzystaniem wskaźników lub referencji. Każde rozwiązanie ma własną składnię jednak efekt końcowy jest taki sam. Wewnątrz funkcji nie jest tworzona kopia przekazywanego obiektu. Do funkcji przekazywany jest oryginalny obiekt.

Przekazywanie obiektów przez referencje pozwala funkcji na wykonywanie modyfikacji w tych obiektach.

Listing 11.4. tworzy funkcję zamieniającą dwie wartości. Jej parametry są przekazywane przez wartość.

Listing 11.4. Przekazywanie argumentów przez wartość

1:    // Listing 11.4. - przekazywanie przez wartość

2:

3:    #include <iostream.h>

4:

5:    void Zamień(int x, int y) ;

6:

7:    int main()

8:    {

9:    int x = 5, y = 10;

10:

cout « "Main. Przed zamiana, x: " « x « " y: " « y « >*"\n";

Zamień(x, y);

cout « "Main. Po zamianie, x: " « x « " y: " « y « "\n"; return 0;


11:

12:

13:

14:

15:    )

16:

17:    void Zamień(int x, int y)

18: <

19:    int    temp;

20:

21:    cout « "Zamień. Przed zamiana, x: " « x « " y: " « y «

22:

23:    temp = x;

24:    x =    y;

25:    y =    temp;

26:

27:    cout « "Zamień. Po zamianie, x: " « x « " y: " « y «

28:

29:    }


Wyszukiwarka

Podobne podstrony:
Poznaj C++ w$ godziny0176 Referencje 165 Funkcja Potęgi () sprawdza poprawność parametru przekazaneg
Poznaj C++ w$ godziny0180 169Zaawansowane referencje i wskaźniki 39:    FunkcjaDruga(
Poznaj C++ w$ godziny0185 174 Godzina 12 52:    // FunkcjaDruga pobiera referencje do
Poznaj C++ w$ godziny0190 Zaawansowane referencje i wskaźniki 179 ZAWSZE NIGDY Zawsze przekazuj p
85304 Zdjęcie0038 (4) Przesyłanie argumentów przez referencje (przezwisko): ■ Przy przekazywaniu arg
Poznaj C++ w$ godziny0010 Spis treści    ix 11    Referencje
Poznaj C++ w$ godziny0165 154 Godzina 11 Wskaźniki są zmiennymi przechowującymi adresy innych obiekt
Poznaj C++ w$ godziny0166 Referencje 155 Referencje 155 ANALIZA: W linii 8 deklarujemy zmienną lokal
Poznaj C++ w$ godziny0167 156 Godzina 11 156 Godzina 11 ANALIZA: Podobnie jak w poprzednim przykładz
Poznaj C++ w$ godziny0168 Referencje 157 Referencje 157 23; cout « ” 24: cout « " 25: re
Poznaj C++ w$ godziny0169 158 Godzina 11Do czego można tworzyć referencje? Referencje można stworzyć
Poznaj C++ w$ godziny0172 Referencje 161 Referencje 161 18 { 19 int temp; 20 21 cout «
Poznaj C++ w$ godziny0174 Referencje 163 Linie 24-26 zamieniają wartości. Efekt zamiany wypisywany j
Poznaj C++ w$ godziny0178 Godzina 12Zaawansowane referencje i wskaźniki W ciągu ostatnich trzech god
Poznaj C++ w$ godziny0182 Zaawansowane referencje i wskaźniki 171 int PobierzWiek() const { return j
Poznaj C++ w$ godziny0184 Zaawansowane referencje i wskaźniki 173 Ponieważ wiemy, że obiekt nie będz
Poznaj C++ w$ godziny0186 175Zaawansowane referencje i wskaźniki Wskaźnik plnt jest deklarowany i in
Poznaj C++ w$ godziny0187 176 Godzina 12 EFEKT DZIAŁANIA: Compile error: Attempting to return a refe

więcej podobnych podstron