Overload Resolution Trap

#include <iostream>
using namespace std;

// Overload for int
void foo(int x) {
    cout << "int overload" << endl;
}

// Overload for int*
void foo(int* p) {
    cout << "int* overload" << endl;
}

int main() {
    foo(0);        // Calls foo(int)
    foo(nullptr);  // Calls foo(int*)
    return 0;
}

Solving Approach

 

 

 

 

Upvote
Downvote
Loading...

Input

Expected Output

int overload int* overload