![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
OutlawZ |
|
|||
Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 269 Регистрация: 19.10.2007 Репутация: нет Всего: нет |
Часто в книгах да и примерах кода видел такую запись:
как написано это мол b имеет тип HBITMAP а o тип TObject. Где можно прочитать про это? так как не понимаю зачем писать HBITMAP если можно просто написать b. Вопрос в том где можно прочитать про эти типы и как с ними работать? Заранее спасибо. -------------------- ![]() ![]() |
|||
|
||||
Albor |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 2 Всего: 9 |
Ну, это как бы азы - объявление переменных.
Программирование под Windows. HBITMAP это описатель картинки... Ответить очень трудно, так как первая часть вопроса просто валит с ног:
Это сообщение отредактировал(а) Albor - 17.8.2012, 08:10 |
||||||
|
|||||||
LeonidPr |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2012 Где: г. Чебоксары Репутация: нет Всего: 1 |
Я так понимаю что вы программите в C++ Builder? Про HBITMAP почитайте в Win32 Programmer's reference, раздел Bitmaps. Про TObject почитайте в Borland C++ Builder help раздел Visual Component Library Reference -> About Object and Component Help -> Alphabetical Object and Component listing -> TO -> TObject Это в пятом билдере. в вашей версии разделы возможно отличаются, но думаю найдете что где. А затем, что C/C++ не являются языками с динамической типизацией и тип переменной нужно указывать при её объявлении. --------------------
pkunzip.zip |
|||
|
||||
NoviceF |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 313 Регистрация: 13.3.2012 Где: Ростов-на-Дону Репутация: 2 Всего: 2 |
Попробуйте объявить любую переменную, не указав её тип - компилятор не даст, тут то же самое. |
|||
|
||||
wester |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 27.2.2009 Репутация: нет Всего: 13 |
Встречный вопрос - как компилятор поймет с каким типом надо работать, если его(тип) не объявить ? |
|||
|
||||
catherham |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 7.7.2010 Репутация: нет Всего: нет |
Из контекста использования.
Значит тип переменной строка. Даже С++ поддерживает похожее объявление переменной (в новом стандарте C++11).
Здесь тип переменной int Это сообщение отредактировал(а) catherham - 18.8.2012, 16:45 |
||||||
|
|||||||
500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: 1 Всего: 14 |
DWORD рулит )))
-------------------- |
|||
|
||||
wester |
|
||||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 27.2.2009 Репутация: нет Всего: 13 |
catherham
Но в первой строке, будет неизвестно с каким типом работать.
Да, это так. Но вопрос изначально поднимался о том, как компилятор узнает о типе на этапе объявления. Хотя может стоить юзать void* и не будет таких вопросов ? ![]() |
||||||||
|
|||||||||
catherham |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 7.7.2010 Репутация: нет Всего: нет |
На этапе объявления у нас просто текст ![]() Компилятор определит тип на этапе компиляции и подставит необходимый код. auto Variable = 10; и int Variable = 10; В итоге даст одинаковый машинный код. Это синтаксический сахар, чтобы не писать: длиииииииииииииииииииииииииииииииииииноеИмяТипа переменная = функция(1); А писать auto переменная = функция(1); Я кэп ![]() Это сообщение отредактировал(а) catherham - 20.8.2012, 13:07 |
|||
|
||||
wester |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 27.2.2009 Репутация: нет Всего: 13 |
Да вот не определит он тип, если у него не будет каких либо данных о нем. Не сможет, да и не должен.
соглашусь, но попробуйте написать auto Variable; Variable = 10; думаю, ошибка будет в первой строке ![]()
Годами юзали #define и еще столько же будем юзать. Таки где выгода слова auto в данном случае ? |
||||||
|
|||||||
catherham |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 7.7.2010 Репутация: нет Всего: нет |
Согласен, должен быть контекст
Все верно, но в PHP такое будет работать, в c++ конечно нет
Годами использовали телеги, зачем нам машины? Так быстрее ![]() Если у вас в файле используется 10 таких типов? Можно писать и макросы, но с auto удобнее. Во всех современных языках такая фича есть. Теперь и в с++ ![]() Это сообщение отредактировал(а) catherham - 20.8.2012, 16:07 |
||||||
|
|||||||
wester |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 27.2.2009 Репутация: нет Всего: 13 |
catherham
хоть в чем - то пришли к компромиссу ![]()
10 типов с очень длинными названиями ? Ну что могу сказать... повезло. Обычно их много больше.
Таки некорректно. Телеги это прошлое, и от них отказались именно из - за того, что они не удовлетворяют нынешним запросам. С auto же непонятно. Я могу написать auto d = 1.0 Но. это будет long или double ? Это сообщение отредактировал(а) wester - 20.8.2012, 16:32 |
||||||
|
|||||||
catherham |
|
||||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 7.7.2010 Репутация: нет Всего: нет |
Вы наверно имели ввиду float. long это вроде целое. Не знаю, я на с++ мало что писал, но в c#, например, это будет double. Пошукал, нашел ответ на ваш вопрос
Так что в с++ это тоже double. Это сообщение отредактировал(а) catherham - 20.8.2012, 17:23 |
||||
|
|||||
wester |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 27.2.2009 Репутация: нет Всего: 13 |
да, опечатался Да, про подобную запись с литералами знаю, но тогда зачем нужно auto если придеться писать auto foo = 1.2F ? float foo = 1.2; auto foo = 1.2f; Одинаковое количество напечатанных символов для определения переменной. А где сахар, который синтаксический ? Это сообщение отредактировал(а) wester - 20.8.2012, 21:24 |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
> А где сахар, который синтаксический ?
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |