Название: какой тип переменной надо использовать. Отправлено: slava_d200 от Октябрь 12, 2012, 22:58 какой тип переменной надо использовать чтобы
переменная могла принимать адрес QString, int и т.д. Пробывал QVariant - это вроде не тот вариант Название: Re: какой тип переменной надо использовать. Отправлено: kambala от Октябрь 12, 2012, 23:29 QVariant принимает значения, а не адреса. если адрес, то можно попробовать через void *
Название: Re: какой тип переменной надо использовать. Отправлено: slava_d200 от Октябрь 12, 2012, 23:39 QVariant принимает значения, а не адреса. если адрес, то можно попробовать через void * и есть ли возможность в данном варианте определить на какой тип ссылается эта ссылка ? Название: Re: какой тип переменной надо использовать. Отправлено: navrocky от Октябрь 12, 2012, 23:49 По void* никакой информации узнать нельзя.
Код
Название: Re: какой тип переменной надо использовать. Отправлено: slava_d200 от Октябрь 12, 2012, 23:53 понял
СПАСИБО. Название: Re: какой тип переменной надо использовать. Отправлено: navrocky от Октябрь 13, 2012, 00:03 Большинство кутэшных классов шарят свое тело. Поэтому я бы всё-таки использовал QVariant и передавал по значению.
Название: Re: какой тип переменной надо использовать. Отправлено: kambala от Октябрь 13, 2012, 03:13 можно попробовать что-то такое если нужны именно указатели:
Код ну и дальше через свич раскручивать Название: Re: какой тип переменной надо использовать. Отправлено: Igors от Октябрь 13, 2012, 09:49 Или без reinterpret
Код
Название: Re: какой тип переменной надо использовать. Отправлено: andrew.k от Октябрь 13, 2012, 18:39 Или без reinterpret Эта конструкция называется "обмани всех и себя в том числе")Код
Название: Re: какой тип переменной надо использовать. Отправлено: Igors от Октябрь 13, 2012, 19:24 Эта конструкция называется "обмани всех и себя в том числе") Откуда такая разрушительная критика? :) union просто "не в моде" - но это прекрасная штатная конструкцияНазвание: Re: какой тип переменной надо использовать. Отправлено: andrew.k от Октябрь 13, 2012, 20:07 Эта конструкция называется "обмани всех и себя в том числе") Откуда такая разрушительная критика? :) union просто "не в моде" - но это прекрасная штатная конструкция"прекрасная" это очень громко сказано. Эта конструкция примерно уровня goto - использовать можно, но крайне редко и уж точно не с указателями. А да. Ответ на вопрос "откуда критика": это мое имхо. Название: Re: какой тип переменной надо использовать. Отправлено: Igors от Октябрь 13, 2012, 20:37 У union совершенно другое назначение, не для "безболезненного" приведения указателей. А не предвзято ли это имхо? Ну вот хотя бы данный случай - чем union плох? Я так вижу что он ничем не хуже, а наоборот, лучше того reinterpret_cast, который здесь придется писать ой много раз. Или плюсовый каст - это типа "показатель крутизны"? Ну из этих "коротких штанишек" наверное все уже повырастали :) Обоснуйте Ваше мнение, приведите пример(ы) - а пока видны только довольно категорические утверждения, основанные непонятно на чем."прекрасная" это очень громко сказано. Эта конструкция примерно уровня goto - использовать можно, но крайне редко и уж точно не с указателями. А да. Ответ на вопрос "откуда критика": это мое имхо. Название: Re: какой тип переменной надо использовать. Отправлено: andrew.k от Октябрь 13, 2012, 21:15 У union совершенно другое назначение, не для "безболезненного" приведения указателей. А не предвзято ли это имхо? Ну вот хотя бы данный случай - чем union плох? Я так вижу что он ничем не хуже, а наоборот, лучше того reinterpret_cast, который здесь придется писать ой много раз. Или плюсовый каст - это типа "показатель крутизны"? Ну из этих "коротких штанишек" наверное все уже повырастали :) Обоснуйте Ваше мнение, приведите пример(ы) - а пока видны только довольно категорические утверждения, основанные непонятно на чем."прекрасная" это очень громко сказано. Эта конструкция примерно уровня goto - использовать можно, но крайне редко и уж точно не с указателями. А да. Ответ на вопрос "откуда критика": это мое имхо. Union с указателями это синтаксический обман. Фактически это сишное приведение типа. При том, что синтаксически его даже нет. Union нужно использовать для данных, а не для указателей. |