Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Результаты опроса: Это полезная фича?
Да 2 40.00%
Нет 2 40.00%
Не знаю / мне все равно 1 20.00%
Голосовавшие: 5. Вы ещё не голосовали в этом опросе

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2011, 18:07   #11
Ivan_32
somewhere else
Участник клуба
 
Аватар для Ivan_32
 
Регистрация: 17.07.2008
Сообщений: 1,409
По умолчанию

Цитата:
определи конструктор с int параметром и перегрузи нужные тебе бинарные операторы. и никаких кастов
А вы видите разницу между (MyInt)10.0 и MyInt(10.0)? Для меня лично, в плане удобности, никакой разницы нет как-то.
Все о чем я говорю это лишь возможность сделать вот так:
Код:
#define inttype=MyInt
class MyInt: private MyIntegerDatatypeWithUnusualSemantics;

int main()
{
	MyInt b;
	MyInt a=b*49+294;
	b=Foo(a);
	b.print();
}

MyInt Foo(MyInt input)
{
	MyInt a=GetSomething(2),b=GetSomething(1),c=GetSomething(0);
	a+=394.0*b+32.0;
	b/=3894.0+c;
	c*=b+394.0;
}
#undef inttype
"Тяжело в учении, легко в бою" - А.В. Суворов
Ivan_32 вне форума Ответить с цитированием
Старый 26.04.2011, 18:29   #12
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

К динамической типизации это не имеет никакого отношения. И ничего революционного тоже не привносит. Это всего навсего неявные привидения, которые определяет пользователь. Зачем? Например для "обогащения" горой методов примитивных типов, или дать возможность, опять же, всяким int'ам реализовывать различные интерфейсы. При чём часть подобного функционала уже есть в C++, хотя бы за счёт неявных привидений между базовыми типами и нестрогих конструкторов (не помеченных explicit), когда мы можем писать setText("Text"), а не setText(QString("Text")); Пользовательские неявные привидения расширили бы эти возможности, можно было бы писать, к примеру, библиотеки адаптации одной библиотеки к другой (как это сделано в Scala в scala.collections.jcl.Conversions, что даёт возможность использовать джавовские классы со скаловскими итераторами и так далее).
netrino вне форума Ответить с цитированием
Старый 27.04.2011, 00:38   #13
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

Цитата:
А вы видите разницу между (MyInt)10.0 и MyInt(10.0)? Для меня лично, в плане удобности, никакой разницы нет как-то.
а ты в курсе, что если конструктор не объявлен, как explicit, то происходит неявное приведение типа?

Код:
MyInt i = 10;
MyInt j = i + 100 + i * 200;
нечитабельно?
как я уже и сказал, определи конструктор с параметром и перегрузи нужные бинарные операторы
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 27.04.2011, 21:47   #14
Ivan_32
somewhere else
Участник клуба
 
Аватар для Ivan_32
 
Регистрация: 17.07.2008
Сообщений: 1,409
По умолчанию

Такой метод все-равно не дает возможности вызывать методы класса. Я знаю что эти преобразования избыточны, но тем не менее они дают возможность вызывать те самые методы класса, а в примере выше это было бы невозможно.

До меня что-то только сейчас дошло, подобная фича ведь скорее всего конфликтовала бы с этими пользовательскими литералами, в то время как литералы, вероятно, смогли бы ее заменить.
"Тяжело в учении, легко в бою" - А.В. Суворов

Последний раз редактировалось Ivan_32; 27.04.2011 в 22:14.
Ivan_32 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обратиться к полям базового класса? Azartov Общие вопросы C/C++ 13 03.07.2011 20:32
Delphi. Несколько программ базового уровня fantic.n00b1 Помощь студентам 1 03.07.2010 01:27
Создание своего класса на основе базового TControl Lich87 Общие вопросы C/C++ 1 22.06.2010 18:29
Куда отследить куда утекает память? TwiX Общие вопросы Delphi 6 02.03.2010 03:10
подскажите свежую идею для смо Барби Помощь студентам 3 30.10.2008 12:03