![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
UnrealMan |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 5 Всего: 32 |
||||
|
||||
boombasta |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 23.10.2008 Репутация: нет Всего: нет |
привет всем!
что-то немогу найти ответов на 2 моих вопроса: 1. че отличается
от
2. что здесь написано:
что за конструкция такая PluginInterface*(*)?? 3. и здесь
тут типа обьявление переменной getObject но не понятно что за (CoreInterface*)? З.Ы. PluginInterface и CoreInterface - это классы |
||||||||
|
|||||||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
1. ничем не отличается.
2 и 3. Это тип указателя на функцию, которая принимает указатель на CoreInterface и возвращает указатель на PluginInterface. Соответственно, PluginInterface* (*getObject)(CoreInterface*) - это указатель на функцию. Я, например, всегда делаю так, чтобы не вводить никого в замешательство:
|
|||
|
||||
boombasta |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 23.10.2008 Репутация: нет Всего: нет |
со строкой 1 понятно (спсб bsa ;)) обьявляется указательна функцию, которая в качестве аргумента принимает указатель на CoreInterface, а возвращает указатель на PluginInterface. а что происходит в строке 2? насколько я понимаю lib->resolve("getObject") возвражает ссылку на функцию? а что такое вот это: (PluginInterface*(*)(CoreInterface*)) ? - это жжет мне мозг ![]() ![]() ![]() дольше по тексту getObject юзается как обычная функция: PluginInterface* getObject(CoreInterface*); |
|||
|
||||
bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Это преобразование к типу "указатель на функцию" - PluginInterface* (*)(CoreInterface*). Что делать для того, чтобы было понятно я показал:
Вообще-то обобщенно тип "указатель на функцию" выглядит так: <return_type> (*)(<arg1_type>, <arg2_type>, ...) Сам указатель (переменная типа "указатель на функцию") определяется так: <return_type> (*<var_name>)(<arg1_type>, <arg2_type>, ...) P.S.: почитай книжку для начинающих |
||||
|
|||||
Goliaf777 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 19.11.2008 Репутация: нет Всего: нет |
Вопрос.Почему нужно using namespace std если в приводимых кодах на форуме пишется std::cout.Объясните ЧаЙнИгУ!!)))
![]() |
|||
|
||||
bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
по-хорошему, надо писать std::cout, std::cin, std::cerr, std::endl... Но если тебе лень и пишешь маленькую программу, которую не собираешься в дальнейшем улучшать, то можно написать после всех инклюдов using namespace std, и это избавит тебя от необходимости писать приставку std::. Если у тебя нет желания писать std, но не хочется глобально раскрывать стандартное пространство имен, то можешь использовать using namespace std внутри функции (точнее, внутри почти любых операторных скобок). Как вариант, можно раскрыть только необходимые элементы пространства имен:
|
||||
|
|||||
Goliaf777 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 19.11.2008 Репутация: нет Всего: нет |
Огромное спасибо!!!
![]() |
|||
|
||||
XeS |
|
||||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 6.4.2008 Репутация: нет Всего: нет |
Помогите разобраться, почему не меняеться адрес переменной, допустим есть такой код:
на экране будет 123, а не 321, а если я перепешу код вот так то все будет норм:
с чем это связано и почему? ![]() и второй вопрос: пусть у меня есть переменные такого типа: int*** a; int* b; что бы привести b к типу a, я должен сделать такое: int*** a; int** c; int* b; c = &b; a = &c; можно ли это сделать по другому, что-бы меньше писать? ![]() |
||||
|
|||||
bsa |
|
||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
XeS
Обычно, такие конструкции можно встретить в качестве параметров функций (когда функция может изменить значение аргумента) или для определения многомерных динамических массивов. Это сообщение отредактировал(а) bsa - 21.4.2009, 13:15 |
||||||||
|
|||||||||
master123 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 13.4.2009 Репутация: нет Всего: нет |
Спс... Мне помогло
________________________________ http://linecinema.ru/ Это сообщение отредактировал(а) master123 - 1.5.2009, 20:10 |
|||
|
||||
XAKERs89 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 24.8.2009 Репутация: нет Всего: нет |
можно ли создать массив структур с помощью указателей?
Это сообщение отредактировал(а) XAKERs89 - 26.8.2009, 21:13 |
|||
|
||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
XAKERs89, Ссылок? Или указателей?
Уточните вопрос. -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
XAKERs89 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 24.8.2009 Репутация: нет Всего: нет |
оЙ..сори запутался ((( указателей
|
|||
|
||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |