Форум программистов, компьютерный форум CyberForum.ru

Указатель на функцию-член - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Модель преобразования виртуального адреса в физический адрес http://www.cyberforum.ru/cpp-beginners/thread957095.html
Доброго времени суток. Необходимо создать программу преобразующею виртуальный адрес в физический. Вот исходные данные: организация виртуальной памяти – страничная, разрядность виртуального адреса – 32 бита, размер физической страницы – 2 Кбайт, максимальное число работающих процессов не более восьми, количество физических страниц в таблице страниц процесса не более четырех, объем...
C++ Объясните по теме "Пространства имён" Разбираю пример из Страуструпа (спец.изд.,2011), стр. 70-71. Есть заголовочный файл stack.h, где в пространстве имён Stack объявлены struct Rep; typedef Rep& stack; stack create(); void destroy(stack s); void push(stack s, char c); char pop(stack s); В файле с реализацией стека stack.cpp http://www.cyberforum.ru/cpp-beginners/thread957093.html
C++ Прога что-то собщаетЧто это, напишите пожалуста!
Цикл.exe привело в действие точку остановка продолжить ОС Windows инициировала точку останова в Цикл.exe. Это может быть вызвано повреждением кучи и указывает на ошибку в Цикл.exe или в одной из загруженных им DLL. Возможной причиной так же может быть нажатие пользователем клавиши F12, когда фокус принадлежит Цикл.exe
Расскаэите о указателях на функции C++
Всем дорого времени суток. Объясните нубу для чего необходимы указатели на функции и как и где их правильно применять... Что-то до меня не доходит из книг.
C++ Сравнение строки http://www.cyberforum.ru/cpp-beginners/thread957055.html
Есть переменная char S; В нее что-то записали. Как проверить что S!="." и S!=".." bool result; в result записать true, если S!="." и S!=".." То есть если строка - символ точка . , или две точки .. то result=false.
C++ Неверное значение Имеется такой кусок кода: if (second_menu == 0) main_menu(); // главное меню else { weight_menu(); // меню ввода переменной weight switch (second_menu) { case 600: // подробнее

Показать сообщение отдельно
BESSON_off
 Аватар для BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 329
18.09.2013, 15:40     Указатель на функцию-член
Имеем следующий код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
 
class Windows
{
public:
    void OpenWindows() { cout << "Open Windows";}
    void CloseWindows() {cout << "Close Windows";}
};
 
int main()
{
void (Windows::*ptr)() = &Windows::CloseWindows;
Windows w1;
(w1.(*ptr))();
return 0;
}
Вопрос заключается в том, почему строка 15 ((w1.(*ptr))();) является неработоспособной? (правильность, написанная в книжке, гласит, что писать нужно "(w1.*ptr)()", но я не могу понять почему не работает мой вариант.
Если мы разложим эту строчку на приоритеты С++ (см. картинку), то из очередности понятно, что в моем случае 1.1 вызывается первой, далее 1.2, которая вызывает 1.3, то есть объект так и так вызывает разименованное значение, находящееся в указателе, в нашем случае функцию. Но видимо я где-то что-то не понимаю...
Миниатюры
Указатель на функцию-член  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru