1. Главная
  2. Библиотека
  3. Программирование
  4. В каких строчках указано корректное преобразование типо...
Разбор задачи

В каких строчках указано корректное преобразование типов? intValue = 10; shortValue = 10; c1 = intValue; // Line 1 c2 = new ConvertableClass(shortValue); // Line 2 l1 = c1.Value; // Line 3 d1 = c1; // Line 4 d2 = (double)c1; // Line 5 d3 =

  • Предмет: Программирование
  • Автор: Кэмп
  • #Основы алгоритмизации и программирования
  • #Языки программирования (C++, Java, Python и др.)
В каких строчках указано корректное преобразование типов? intValue = 10; shortValue = 10; c1 = intValue; // Line 1 c2 = new ConvertableClass(shortValue); // Line 2 l1 = c1.Value; // Line 3 d1 = c1; // Line 4 d2 = (double)c1; // Line 5 d3 =

Условие:

В каких строчках указано корректное преобразование типов?
\nint intValue = 10;\nshort shortValue = 10;
\nConvertableClass c1 = intValue; // Line 1\nConvertableClass c2 = new ConvertableClass(shortValue); // Line 2\nint l1 = c1.Value; // Line 3\ndouble d1 = c1; // Line 4\ndouble d2 = (double)c1; // Line 5 \ndouble d3 = (ConvertableClass)shortValue; // Line 6\nstring s1 = (string)c1; // Line 7\nstring s2 = c1; // Line 8

\nclass ConvertableClass
{
public long Value { get; }

public ConvertableClass(long value)
{
Value = value;
}

public static implicit operator ConvertableClass(int value)
{
return new ConvertableClass((long)value);
}

public static implicit operator double(ConvertableClass c)
{
return c.Value;
}

public static explicit operator string(ConvertableClass c)
{
return c.Value.ToString();
}
}

Решение:

Дано:

  1. Переменные:
  • int intValue = 10;

  • short shortValue = 10;

  1. Класс ConvertableClass:
  • Хранит long Value.

  • Имеет конструктор, принимающий long.

  • Определены следующие операторы преобразования:

  • Неявный оператор: implicit operator ConvertableClass(int value)

  • Неявный оператор: implicit operator double(ConvertableClass c)

  • Явный оператор: explicit operator string(ConvertableClass c)

Найти:

Строки, в которых указано корректное преобразование типов (то есть компилятор не выдаст ошибку).


Решение: Пошагов...

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

Попробуй решить по шагам

Попробуй один шаг и продолжи в режиме обучения или посмотри готовое решение

Какой тип оператора преобразования (implicit/explicit) позволяет выполнить преобразование `ConvertableClass` в `string` без ошибки компиляции в строке `string s1 = (string)c1;`?

Что нужно знать по теме:

Что нужно знать по теме

Алгоритм решения

Топ 3 ошибок

Что спросит препод

Выбери предмет