Als «overload-resolution» getaggte Fragen


5
Warum sollte das Hinzufügen einer Methode einen mehrdeutigen Aufruf hinzufügen, wenn er nicht an der Mehrdeutigkeit beteiligt wäre?
Ich habe diese Klasse public class Overloaded { public void ComplexOverloadResolution(params string[] something) { Console.WriteLine("Normal Winner"); } public void ComplexOverloadResolution<M>(M something) { Console.WriteLine("Confused"); } } Wenn ich es so nenne: var blah = new Overloaded(); blah.ComplexOverloadResolution("Which wins?"); Es schreibt Normal Winnerin die Konsole. Aber wenn ich eine andere Methode hinzufüge: …



1
Warum führt {} als Funktionsargument nicht zu Mehrdeutigkeiten?
Betrachten Sie diesen Code: #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; } }; …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.