Tak naprawdę nie odpowiedzieć dlaczego, ale to zależy od standardu, §1.3.10
The information about a function that participates in overload resolution (13.3): the types of its parameters and, if the function is a class member, the cv- qualifiers (if any) on the function itself and the class in which the member function is declared.
To po prostu oznacza, że kwalifikacyjne CV argumenty są ignorowane w rozdzielczości przeciążenia.
Podobny (ale nie równoważnik) Przykład odniesieniami działa:
class Sample {
public:
void Method(char& x) {}
void Method(const char& x) {}
};
ponieważ tutaj typu są różne, to pierwszy przypadek jest odniesienie do char
drugi odniesienie do const char
(w przeciwieństwie do const
odniesienie do char
).
Jaki jest związek między pierwotnego pytania i edycję? Te dwa pytania wydają się nie mieć związku. –
I Usunięto to. – Avinash