Реклама на сайте Advertise with us

C++ вопрос синтаксиса

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

📈sflash.biz

С нами с 03.11.12
Сообщения: 3912
Рейтинг: 4447


Передовик Master-X (16.04.2018) Передовик Master-X (16.07.2018) Передовик Master-X (16.12.2022) Передовик Master-X (01.01.2023)
Ссылка на сообщениеДобавлено: 05/12/17 в 12:02       Ответить с цитатойцитата 

Кто-то может расшифровать конструкцию:
Код:

((UI*)client)->send(uiTXT::VisualData, {
          {"coll", col.num},
          {"row", (int)row.side}
        });

1) Понятно, что это вызов метода внутри класса с 2мя параметрами, первый - статический, другой напоминает статический обьект из JavaScript! Что это за тип?
2) ну и самое загадочное для меня ((UI*)client). Это какой-то хитрый указатель? Почему звёздочка стоит после слова UI?

0
 



С нами с 25.02.10
Сообщения: 179
Рейтинг: 146

Ссылка на сообщениеДобавлено: 05/12/17 в 12:52       Ответить с цитатойцитата 

Это надо смотреть тут

0
 

Web Developer С++

С нами с 25.11.01
Сообщения: 859
Рейтинг: 759

Ссылка на сообщениеДобавлено: 05/12/17 в 15:06       Ответить с цитатойцитата 

S_Flash писал:

2) ну и самое загадочное для меня ((UI*)client). Это какой-то хитрый указатель? Почему звёздочка стоит после слова UI?


это привод client к типу UI
Обычно такое используется когда в функцию передается переменная типа void *, а в функции она уже приводится к нужному типу.

void *ThreadCatGidsInit(void *PRSi) {
TProcRotStsi *Pi = (TProcRotStsi*)PRSi;
..
}

Софт для вебмастеров, криптобот, программинг (C++/PHP), партнерка: https://dfservice.com/ru/

9
 

📈sflash.biz

С нами с 03.11.12
Сообщения: 3912
Рейтинг: 4447


Передовик Master-X (16.04.2018) Передовик Master-X (16.07.2018) Передовик Master-X (16.12.2022) Передовик Master-X (01.01.2023)
Ссылка на сообщениеДобавлено: 05/12/17 в 16:19       Ответить с цитатойцитата 

DF™: как-то так и подозревал, но почему звёздочка после UI?
Дело в том, что пусть тип был бы адресу указателя UI (хотя я не уверен, что так можно), мы бы его разыменовывали так *UI. Но в данном случае UI*?! Может уже просто в c++ придумали указатели на типы и они именно так передаются! icon_wink.gif

0
 

Web Developer С++

С нами с 25.11.01
Сообщения: 859
Рейтинг: 759

Ссылка на сообщениеДобавлено: 05/12/17 в 18:53       Ответить с цитатойцитата 

S_Flash писал:
DF™: как-то так и подозревал, но почему звёздочка после UI?
Дело в том, что пусть тип был бы адресу указателя UI (хотя я не уверен, что так можно), мы бы его разыменовывали так *UI. Но в данном случае UI*?! Может уже просто в c++ придумали указатели на типы и они именно так передаются! icon_wink.gif


Справа потому что это приведение к типу.
Когда звездочка слева это, это берем значение по адресу
void func(char **str) {
*str=strdup("test");
..
}

char *text;
func(&text);
puts(text);
>> test

Софт для вебмастеров, криптобот, программинг (C++/PHP), партнерка: https://dfservice.com/ru/

8
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »