W tym przykładzie występują dwie funkcje o nazwie
foo
, które wzajemnie się przeciążają. To może spowodować nieoczekiwane zachowanie.
template<class T> class MojaKlasa { public: int foo(T type); int foo(int b); }; |
Rozwiązaniem jest napisanie specjalnych funkcji, co demonstruje przykład poniżej, lub użycie specjalnych szablonów funkcji, co spowoduje usunięcie wieloznaczności z kodu.
template<class T> class MojaKlasa { public: int fncType(T type); int fncInt(int b); }; |