Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Nadpisanie metod
#include <iostream> #include <string> class Monster { int HP; std::string Name; public: void Set(const std::string &NewName) //Metoda void Set przyjmująca jeden argument typu: const std::string& { Name=NewName; } void Set(int NewHP) //Nadpisana (przysłonięta -,-) metoda void Set przyjmująca tym razem inne argumenty.. dokładnie jeden typu: int { HP=NewHP; } void Write() { std::cout<<"Name: ["<<Name<<"] HP: ["<<HP<<"]\n"; } }; int main() { Monster Obj; //Tworzę nowy obiekt typu monster Obj.Set("Golem"); //Wywołuję metodę Set, która jako argument przyjmuje typ std::string Obj.Set(100); //Wywołuję inną metodę Set, któa jako argument przyjmyje typ int /* UWAGA! Jeżeli w klasie znajduje się kilka metod o tej samej nazwie (u nas Set(...)) Kompilator sam ustala jaka metoda ma zostać wywołana na podstawie argumentów (i tylko wyłącznie argumentów).. Innymi słowy kompilator nie bierze pod uwagę zwracanego typu.. np. jeżeli dodalibyśmy jeszcze taką metode int Set(int a){return 5;} to kompilator wywaliłby nam błąd, że metoda Set przyjmująca argument int już wcześniej została zdefiniowana (nie weźmie pod uwagę, że zwracany jest inny typ [wczęsniej void]) */ Monster Obj_2; Obj_2.Set("Wolf"); Obj_2.Set(30); Obj.Write(); Obj_2.Write(); }
run
|
edit
|
history
|
help
0
CheckSymbolBalance
base and derr con
Gatecrasher
ExceptionHandling2
ExceptExpo
11340 v3.1
LRUCache
Arithemetic operators
ForwardListString2
Test 8(2010)