Pytania otagowane jako overload-resolution


5
Po co dodawanie metody dodawałoby niejednoznaczne wywołanie, jeśli nie byłoby to związane z niejednoznacznością
Mam tę klasę public class Overloaded { public void ComplexOverloadResolution(params string[] something) { Console.WriteLine("Normal Winner"); } public void ComplexOverloadResolution<M>(M something) { Console.WriteLine("Confused"); } } Jeśli nazywam to tak: var blah = new Overloaded(); blah.ComplexOverloadResolution("Which wins?"); Pisze Normal Winnerdo konsoli. Ale jeśli dodam inną metodę: public void ComplexOverloadResolution(string something, object somethingElse …



1
Dlaczego {} jako argument funkcji nie prowadzi do niejednoznaczności?
Rozważ ten kod: #include <vector> #include <iostream> enum class A { X, Y }; struct Test { Test(const std::vector<double>&, const std::vector<int>& = {}, A = A::X) { std::cout << "vector overload" << std::endl; } Test(const std::vector<double>&, int, A = A::X) { std::cout << "int overload" << std::endl; } }; int …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.