Understanding Overload Resolution

Learn how the compiler decides which function to call based on the arguments we provide.

Ryan McCombe
Published
Hello! I'm here to help you with any questions about this lesson. Feel free to ask me anything - whether it's about specific concepts, examples, or how to apply what you've learned!

Questions & Answers

Answers are generated by AI models and may not have been reviewed. Be mindful when running any code on your device.

Passing Non-Const References to Overloaded Functions
Why does the compiler prefer a non-const reference parameter over a const reference when I pass a non-const variable?
Overloading Functions with Default Arguments
Can I overload functions that differ only in their default arguments?
Debugging Overload Resolution Failures
How can I debug a situation where the compiler is not selecting the overload I expect it to?
Overload Resolution with Function Templates
How does overload resolution work when there are both function templates and non-template functions?
Overloading on const-ness of Parameters
Can I overload a function based on whether a parameter is const or non-const?
Overloading on const-ness of *this
Can I overload member functions based on the const-ness of the object they're called on?
Overloading in Derived Classes
If I overload a function in a base class, can I also overload it in a derived class?