Перегрузка функций/методов

Последнее обновление: 01.12.2023

C++

C#

C

C++

#include <iostream>

int sum(int, int);
double sum(double, double);

int main()
{
    int result1 = sum(3, 6); // выбирается версия int sum(int, int)
    std::cout << result1 << std::endl; // 9

    
    double result2 = sum(3.3, 6.6); // выбирается версия double sum(double, double)
    std::cout << result2 << std::endl; // 9.9
}
int sum(int a, int b)
{
    return a + b;
}
double sum(double a, double b)
{
    return a + b;
}

C#

В C# можно создавать несколько методов с одним и тем же именем, но разной сигнатурой: разным количеством параметров, с разными типами параметров, с разным порядком параметров, с разными модификаторами параметров.

class Program
{
    static void Main()
    {
        int result1 = Sum(3, 6); // выбирается версия int Sum(int, int)
        Console.WriteLine(result1); // 9


        double result2 = Sum(3.3, 6.6); // выбирается версия double Sum(double, double)
        Console.WriteLine(result2); // 9.8999999999...
    }
    static int Sum(int x, int y)
    {
        return x + y;
    }
    static double Sum(double x, double y)
    {
        return x + y;
    }
}

Kotlin

В Kotlin можно создавать несколько функций с одним и тем же именем, но которые отличаются по количеству, типу или по порядку в списке параметров.

fun sum(a: Int, b: Int): Int {
    return a + b
}
fun sum(a: Double, b: Double): Double {
    return a + b
}
fun main() {
    val result1: Int = sum(3, 6) // выбирается версия int Sum(int, int)
    println(result1) // 9

    val result2: Double = sum(3.3, 6.6) // выбирается версия double Sum(double, double)
    println(result2) // 9.8999999999...
}
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850