Function overloading and return type

In C++ and Java, functions can not be overloaded if they differ only in the return type.

For example, the following program C++ and Java programs fail in compilation.

C++ Program

int foo() { 
    return 10; 
char foo() {  // compiler error; new declaration of foo()
    return 'a'
int main()
    char x = foo();
    return 0;

Java Program

// filename Main.java
public class Main {
    public int foo() {
        return 10;
    public char foo() { // compiler error: foo() is already defined
        return 'a';
    public static void main(String args[])

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above

This article is attributed to GeeksforGeeks.org

leave a comment



load comments

Subscribe to Our Newsletter