crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V  < 1 2 3 >  
Ответить в данную темуНачать новую тему
> Ошибка invalid conversion from `QWidget*' to `QComboBox*'
kwisp
  опции профиля:
сообщение 16.9.2010, 14:55
Сообщение #11


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Цитата(Litkevich Yuriy @ 16.9.2010, 15:48) *
Ну и cast_* само собой

ну и конечно же различные
operator Type()

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kvak
  опции профиля:
сообщение 16.9.2010, 16:00
Сообщение #12


Студент
*

Группа: Участник
Сообщений: 51
Регистрация: 5.5.2010
Пользователь №: 1690

Спасибо сказали: 1 раз(а)




Репутация:   0  


А если в этом случае
oe_units = qobject_cast<QComboBox*>(PM->TABLE_ELITE->cellWidget(e, f));
допустим, в ячейке (e, f) нет виджета QComboBox, то как себя программа поведет ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 16.9.2010, 16:02
Сообщение #13


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


oe_units будет равна нулю. Не забывай делать проверку и проблем не будет
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 16.9.2010, 21:10
Сообщение #14


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Цитата(Litkevich Yuriy @ 16.9.2010, 17:48) *
kwisp прав, вот стиль описанный в Си++:
char ch = 0x01;
int = int(ch);

вообще-то речь про приведение указателей была :) А там, как ни крути, это адрес и всё тут. Какие нафиг конструкторы ? :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DEADHUNT
  опции профиля:
сообщение 16.9.2010, 21:16
Сообщение #15


Активный участник
***

Группа: Участник
Сообщений: 430
Регистрация: 15.4.2009
Пользователь №: 686

Спасибо сказали: 26 раз(а)




Репутация:   2  


Цитата(Алексей1153 @ 16.9.2010, 22:10) *
вообще-то речь про приведение указателей была :) А там, как ни крути, это адрес и всё тут. Какие нафиг конструкторы ? :)

адреса вообще-то тоже требуется корректировать(при необходимости).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 16.9.2010, 21:18
Сообщение #16


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Алексей1153,
он тебе вообще про приведение типов в с++.
про то как принято.
твой вариант остался из Си. и оставили его только из за совместимости с уже написанным кодом. чтобы он собирался новыми компиляторами.
то что хоть раз принималось стандартом очень тяжко выкинуть.

не хочешь не используй ни касты ни приводящие конструтокры ни операторы Type(). и приводи указатели старым способом. хозяин барин.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 16.9.2010, 21:28
Сообщение #17


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Цитата(DEADHUNT @ 17.9.2010, 0:16) *
адреса вообще-то тоже требуется корректировать(при необходимости).

хоть один пример в студию. Пока что я не могу придумать такой случай

kwisp, да нет, у меня нет привычек от СИ , я сразу с C++ начал. Каст использовать или нет - не вижу необходимости в нём, а выглядит неэстетично :) Вообще, я к метаданным о типе отрицательно отношусь (это мой личный баг :D )
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 16.9.2010, 21:42
Сообщение #18


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Цитата(Алексей1153 @ 16.9.2010, 22:28) *
не вижу необходимости в нём

ладно раз уж начал песню допою до конца. тему потом разделим.
Цитата(Алексей1153 @ 16.9.2010, 22:28) *
Каст использовать или нет - не вижу необходимости в нём, а выглядит неэстетично

т.е. ты всегда уверен что приведение закончится успешно?


Цитата(Алексей1153 @ 16.9.2010, 22:28) *
хоть один пример в студию. Пока что я не могу придумать такой случай

та легко.
при освобождении памяти ты даешь delete указатель - как по адресу delete определяет сколько памяти освободить? каков размер обЪекта?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DEADHUNT
  опции профиля:
сообщение 16.9.2010, 21:46
Сообщение #19


Активный участник
***

Группа: Участник
Сообщений: 430
Регистрация: 15.4.2009
Пользователь №: 686

Спасибо сказали: 26 раз(а)




Репутация:   2  


Цитата(Алексей1153 @ 16.9.2010, 22:28) *
хоть один пример в студию. Пока что я не могу придумать такой случай

class A {
};

class B : public virtual A {
};

class C: public B, public virtual A {
};

C *c = new C;
A *a = (A *) c;

ну и ещё что-то там наворотить когда статически нельзя определить смещение базового класса(надо использовать dynamic_cast).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 16.9.2010, 21:50
Сообщение #20


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Цитата(kwisp @ 17.9.2010, 0:42) *
т.е. ты всегда уверен что приведение закончится успешно?

конечно :) Это лишь снятие ответственности с компилятора, который паникует при попытке присвоить адрес объекта типа родителя указателю на объекта типа дитёнка (наоборот можно, он даже не пикнет). Более ничего при этом не происходит


Цитата(kwisp @ 17.9.2010, 0:42) *
та легко.
при освобождении памяти ты даешь delete указатель - как по адресу delete определяет сколько памяти освободить? каков размер обЪекта?

это не пример. Во первых, АДРЕС не поменяется от этого. Во вторых, для таких случаев должен быть виртуальный деструктор, либо ты уж учитывай, какой тип удаляется и приведи его перед удалением

А DEADHUNT говорил
Цитата(DEADHUNT @ 17.9.2010, 0:16) *
адреса вообще-то тоже требуется корректировать


DEADHUNT, в твоём примере адрес не меняется и не корректируется тоже )

я вредное, я знаю... Но пока не увидел убедительных объяснений обязаловки применения каста :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

3 страниц V  < 1 2 3 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 15.1.2025, 19:44