тип не подходит к аргументу в функции, то он будет пытаться преобразоваться в нужный тип (для которого можно написать кастомный "преобразователь")? Я имею в виду не вручную писать класс для преобразования и т.п., а автоматически. Как например float автоматически кастится в int, если аргумент функции типа int. Прошу прощения за возможные неточности в формулировках, в плюсах еще не сильно понимаю))
Есть оператор неявного преобразования, который как и неэксплисит конструкторы задает пользовательские преобразования
Есть
А что делать с такими типами, как int16_t например? Или фундаментальные типы, float, int и прочие
Мне интересно, как ты это представляешь. Вот ты написал свой тип, в функции использовал int, а туда передали твой тип. Но у тебя в типе нет оператора приведения к инту, ты же говоришь надо без него. И что делать?
Привидение к ним в своем классе пишешь
Он говорит, что надо без написания этого 😁
я не знал про оператор неявного преобразования) я думал, условно, что для каждого типа нужно писать отдельную функцию для приведения. впрочем так и нужно, но в cpp есть оператор, который можно переопределить для этого. Спасибо за инфу
Оператор - это функция в классе )
У float, int и других фундаментальных типов тоже есть операторы, но эти типы же не классы. user-defined типы конечно можно представить в виде классов, а фундаментальные типы "заложены", и у них свои операторы (которые похоже нельзя переопределить глобально)
Обсуждают сегодня