Ta sama nazwa funkcji, ale różne nazwy parametru.

0

Nie mogę zrozumieć jednego z paragrafów książki "c++ dla każdego".Owszem, czytałem o tym kopiowaniu wartości, ale tak na prawdę nie rozumiem. Dlaczego ta sama funcja może mieć w main'ie parametr x, ale już niżej...czyli tu gdzie jest jej definicja, tym parametrem jest "original"? Czemu nie może być znowu x?
[code]
int funkcja(int);
int main()
{
int x=2;
int y;
y=funkcja(x);
}
int funkcja(int original)
{
jakieś instrukcje;
}

[/code]

0

Nie musi mieć original, nazwa jest dowolna

int funkcja(int dupa)
{ 
  jakieś instrukcje;
}
0
bogdans napisał(a)

Nie musi mieć original, nazwa jest dowolna

int funkcja(int dupa)
{ 
  jakieś instrukcje;
}

;-)))))))))))))))))))))
Ja wiem..., ale nie o to chodzi. Może sprecyzuję pytanie. Chodzi mi o to, dlaczego nazwa parametru została w ogóle zmieniona. Ja wiem, że mogłem tam napisać nawet "Pamela Anderson" albo "Frytka", ale czemu ma służyć sama zmiana nazwy? Czy kompilator wyrzuci jakiś błąd jeśli tej nazwy nie zmienię? a jeśli wyrzuci, to czemu? Czy ta zmiana jest konieczna?

Bo w tej książce do tej zmiany nazwy dochodzi w każdym przykładzie kodu, znajdującym się w temacie o funkcjach.

0

Ty nie zmieniasz nazwy, ty przekazujesz parametr do funkcji a jak on się tam nazywa to nie musisz nawet wiedzieć.

0

Tutaj nie zachodzi zmiana nazwy - "x" to w ogóle jest nazwa zmiennej - zmienna ta istnieje tylko w obrębie funkcji main().
Przekazujesz do funkcja() parametr o wartości zmiennej "x" - a funkcja nazywa go sobie po swojemu.

Oczywiście, może się nazywać x - ale nazwy parametrów w funkcjach powinny ogólnie mieć jakieś znaczenie.

Na przykład może być funkcja:
float pole(float promien)

A do niej możesz przekazywać jakieś "a" czy inne "b", względnie nawet "kola[x]".

0
Ktos napisał(a)

Tutaj nie zachodzi zmiana nazwy - "x" to w ogóle jest nazwa zmiennej - zmienna ta istnieje tylko w obrębie funkcji main().
Przekazujesz do funkcja() parametr o wartości zmiennej "x" - a funkcja nazywa go sobie po swojemu.

Oczywiście, może się nazywać x - ale nazwy parametrów w funkcjach powinny ogólnie mieć jakieś znaczenie.

Na przykład może być funkcja:
float pole(float promien)

A do niej możesz przekazywać jakieś "a" czy inne "b", względnie nawet "kola[x]".

Aha, rozumiem...czyli dochodzi do przekazania parametru o wartości zmiennej "x" a nie do przekazania nazwy tej zmiennej. Sama zaś nazwa tego parametru może być w zasadzie dowolna,byle była na tyle czytelna, by kojarzyć się z tym co trzeba.

To jeszcze jedno: czy przez przekazanie tego parametru do funkcja() należy rozumieć ujęcie jego nazwy ...w miarę dowolnej...w te właśnie nawiasy "()"?:
[code]
int funkcja(int parametr){}
[/code]

0

To jeszcze jedno: czy przez przekazanie tego parametru do funkcja() należy rozumieć ujęcie jego nazwy ...w miarę dowolnej...w te właśnie nawiasy "()"?:

Żeby nie było wątpliwości - tak, to w nawiasach to parametry, ale nie obejmujesz każdego z osobna w nawiasy:

int suma(int a, int b)
{
    return a + b;
}

Gdzie int suma to deklaracja funkcji typu int (czyli zwracającej wartość typu int), a int a i int b to jej parametry.

1 użytkowników online, w tym zalogowanych: 0, gości: 1