C++/Przeciążanie funkcji: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
→‎Typ argumentów: lancuch -> str
Lethern (dyskusja | edycje)
poprawka opisu %s + poprawki - to nie podręcznik o pisaniu szybkich programów, tylko nauka przeciążania funkcji, const std::string& to zdecydowana przesada - materiał na inny moduł
Linia 9:
<source lang="cpp">
void funkcja(int);
void funkcja(const std::string&);
void funkcja(const std::string&, const std::string&);
// int funkcja(int); //niedozwolone, funkcje różnią się tylko zwracanym typem
int funkcja(bool); //dozwolone
Linia 33:
double pot(double, int);
void pot(int&, int);
 
int pot(int podstawa, int wykladnik)
{
Linia 97 ⟶ 98:
<source lang="cpp">
void pisz(char);
void pisz(const std::string&);
void pisz(void);
void pisz(char a) {
printf("%c", a);
}
void pisz(const std::string& a) {
printf("%s", a.c_str());
}
Linia 111 ⟶ 112:
</source>
 
{{Uwaga|Zwróćmy uwagę na wywołanie <tt>printf("%s", a'''<big>.c_str()</big>''')</tt>. Należy pamiętać, że dopole funkcji%s należyoczekuje przekazaćłańcucha łańcuchznaków wtypu stylu C achar[], nie samobsłuży łańcuch w stylu C++. W przeciwnym wypadku funkcja starałaby się wyświetlić obiektzatem typu <tt>std::string</tt>, codlatego zwykleposługujemy doprowadzisię dofunkcją zamknięciac_str() programuzwracającą lubnapis jego zawieszenia. Z tego powodu jej użycie do wyświetlania obiektów niebędących POD niejako jesttablicę zalecanechar.}}
Można by dopisać więcej przykładów, lecz chyba to tłumaczy wszystko dobitnie. Dajemy typ char, wpisuje znak, dajemy łańcuch, wpisuje łańcuch rzutowany na tablicę, puste nawiasy, nowy wiersz...