Что такое эквивалент C для reinterpret_cast?

Эта метка устанавливается по умолчанию с тем, что было первоначально возвращено b.getTheUserInput(). Если результат b.getTheUserInput() изменяется, метка не обнаруживается и поэтому не изменяет его текст.

Самый простой способ исправить это - вызвать l.setText(b.getTheUserInput()), когда b.getTheUserInput() имеет новый output.

Другой способ - написать прослушиватель (например, ChangeListener ), который отправляет событие всякий раз, когда b.getTheUserInput() имеет новый вывод, затем добавьте ярлык слушателя и изменить его текст при получении события. Сначала это может показаться более сложным, но преимущество заключается в том, что Board не нужно знать о ярлыке или что-то еще, что может хотеть получить доступ к его выходным данным в будущем.

34
задан Baum mit Augen 30 October 2017 в 12:33
поделиться

4 ответа

int *foo;
float *bar;

// c++ style:
foo = reinterpret_cast< int * >(bar);

// c style:
foo = (int *)(bar);
33
ответ дан 27 November 2019 в 07:19
поделиться

Приведения типов в стиле C выглядят просто как имена типов в скобках:

void *p = NULL;
int i = (int)p; // now i is most likely 0

Очевидно, есть лучшие применения для приведения, чем это, но это основной синтаксис.

4
ответ дан 27 November 2019 в 07:19
поделиться

Приведение в стиле C:

int* two = ...;
pointerToOne* one = (pointerToOne*)two;
1
ответ дан 27 November 2019 в 07:19
поделиться

Вы можете свободно приводить типы указателей в C, как и любой другой тип.

Быть полный:

void *foo;
some_custom_t *bar;
other_custom_t *baz;
/* Initialization... */
foo = (void *)bar;
bar = (some_custom_t *)baz;
baz = (other_custom_t *)foo;
0
ответ дан 27 November 2019 в 07:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: