Что Делает “Перегруженный” / “Перегрузка” / “Перегружающийся” Средний?

Согласно MDN, теперь значение safe может быть предоставлено таким свойствам, как align-items и justify-content . Это описано следующим образом:

Если размер элемента переполняет контейнер выравнивания, элемент выравнивается, как если бы режим выравнивания был start.

blockquote>

Таким образом, он может быть использован следующим образом.

.rule
{
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: safe center;
}

Однако, неясно, насколько он поддерживается браузером, я не мог найти примеров его использования, и у меня были некоторые проблемы с это я сам. Упомянув его здесь, чтобы привлечь к этому больше внимания.

15
задан George Stocker 9 December 2008 в 03:03
поделиться

8 ответов

Это означает обеспечение функции (метод или оператор) с тем же именем, но с другой подписью. Например:

void doSomething();
int doSomething(string x);
int doSomething(int a, int b, int c);
22
ответ дан 1 December 2019 в 00:21
поделиться

Перегрузка Фундаментального понятия

или "перегрузка метода" является названием понятия наличия больше чем одного метода с тем же именем, но с различными параметрами.

Для, например, Система. Класс DateTime в c# имеет больше чем один метод ToString. Стандартный ToString использует культуру по умолчанию системы для преобразования даты и времени для строкового представления:

new DateTime(2008, 11, 14).ToString(); // returns "14/11/2008" in America

, в то время как другая перегрузка того же метода позволяет пользователю настраивать формат:

new DateTime(2008, 11, 14).ToString("dd MMM yyyy"); // returns "11 Nov 2008"

Иногда название параметра может быть тем же, но типы параметра могут отличаться:

Convert.ToInt32(123m);

преобразовывает десятичное число в интервал, в то время как

Convert.ToInt32("123");

преобразовывает строку в интервал

Разрешение Перегрузки

Для нахождения, что лучшая перегрузка звонит, компилятор выполняет операцию, названную "разрешение перегрузки". Для первого примера компилятор может найти лучший метод просто путем соответствия количеству аргумента. Для второго примера компилятор автоматически называет десятичную версию метода замены, если Вы передаете десятичный параметр, и вызовы представляют версию в виде строки при передаче строкового параметра. Из списка возможных выводов, если компилятор не может найти, что подходящий звонит, Вы доберетесь, ошибка компилятора как "Лучшая перегрузка не соответствует параметрам...".

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

15
ответ дан 1 December 2019 в 00:21
поделиться

Функция перегружается, когда она имеет больше чем одну подпись. Это означает, что можно назвать его с различными типами аргумента. Например, у Вас может быть функция для печати переменной на экране, и можно определить его для различных типов аргумента:

void print(int i);
void print(char i);
void print(UserDefinedType t);

В этом случае, функциональная печать () имела бы три перегрузки.

6
ответ дан 1 December 2019 в 00:21
поделиться

Это означает иметь различные версии той же функции, которые берут различные типы параметров. Такая функция "перегружается". Например, возьмите следующую функцию:

void Print(std::string str) {
  std::cout << str << endl;
}

можно использовать эту функцию для печати строки на экран. Однако эта функция не может использоваться, когда Вы хотите распечатать целое число, можно затем сделать вторую версию из функции, как это:

void Print(int i) {
  std::cout << i << endl;
}

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

4
ответ дан 1 December 2019 в 00:21
поделиться

Другие ответили, какова перегрузка. Когда Вы начинаете, это запутывается с переопределением/переопределением.

В противоположность перегрузке, переопределение определяет метод с той же подписью в подклассе (или дочерний класс), который переопределяет реализацию родительских классов. Некоторый язык требует явной директивы, такой как virtual функция членства в C++ или override в Delphi и C#.

using System;

public class DrawingObject
{
    public virtual void Draw()
    {
        Console.WriteLine("I'm just a generic drawing object.");
    }
}

public class Line : DrawingObject
{
    public override void Draw()
    {
        Console.WriteLine("I'm a Line.");
    }
}
2
ответ дан 1 December 2019 в 00:21
поделиться

Перегруженный метод один с несколькими опциями для числа и типа параметров. Например:

foo(foo)

foo(foo, bar)

оба сделали бы относительно то же самое, но у каждого есть второй параметр для большего количества опций

, Также у Вас может быть тот же метод, берут различные типы

int Convert(int i)
int Convert(double i)
int Convert(float i)
1
ответ дан 1 December 2019 в 00:21
поделиться

Точно так же, как в общем использовании, это относится к чему-то (в этом случае, имя метода), делая больше чем одно задание.

0
ответ дан 1 December 2019 в 00:21
поделиться

Перегрузка - это Бедная версия мультиметода из CLOS и других языков . Это сбивает с толку.

Переопределение - обычный ОО. Он идет с наследованием, мы тоже называем его переопределением (например, в ответе https://stackoverflow.com/users/3827/eed3si9n Строка предоставляет специальное определение Draw () ].

0
ответ дан 1 December 2019 в 00:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: