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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Arkaniy
106 / 106 / 6
Регистрация: 29.08.2012
Сообщений: 453
#1

Указатель на метод класса - C++

09.03.2014, 23:51. Просмотров 301. Ответов 8
Метки нет (Все метки)

Доброго времени суток, форумчане.
Необходимо получить указатель на размер вектора.
Делаю из соображений быстродействия, т.к. каждый раз обращаться через оператор точки будет долго.
Возможно я не прав. Просто думается, что обращаться напрямую через указатель быстрее нежели через класс. Искал много и даже находил решения моей проблемы, но вообще не понимаю как делать и как должно работать. Прошу помощи знающих и объяснения "для чайников".
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.03.2014, 23:51     Указатель на метод класса
Посмотрите здесь:

Указатель на метод класса - C++
Приветствую. Нужна помощь. Не работает указатель в данной программе: #include <iostream> #include <string.h> using namespace std; ...

Указатель на метод класса! - C++
Ответьте пожалуйста на такой вопрос:Возможна ли такая ситуация и как ее реализовать правильно? Мне надо использовать функцию(void...

Указатель на метод класса - C++
Собственно, проблема вот в чем. Есть класс и для него определен метод class ABC ....... public: void paint(.....); ...

Указатель на метод класса - C++
Как сделать указатель на метод класса А, который наследует класс В в классе В. class A : B { public: double...

Указатель на метод класса - C++
Есть для этого какой-нибудь инструмент? Интересует именно не ссылка, а указатель. Хочется примерно следующего: typedef...

Указатель на метод и на поле класса - C++
Суть такова, нужно создать класс студент, определить метод доступа к скрытым полям уровень знаний и курс. Создать открытое поле стипедия....

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SharpDeveloper
131 / 128 / 14
Регистрация: 16.02.2012
Сообщений: 451
10.03.2014, 00:58     Указатель на метод класса #2
Скорее всего вы не правы. При вызове через указатель на функцию класса компилятор сгенерирует почти такой-же по производительности код, имхо.
Как должно работать: http://msdn.microsoft.com/en-us/library/k8336763.aspx
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.03.2014, 04:48     Указатель на метод класса #3
Речь про указатель на метод size()?
C++
1
2
3
4
5
6
7
vector <int> v;
v.push_back(1);
v.push_back(2);
cout << v.size() << endl;
std::vector<int, std::allocator<int>>::size_type (std::vector<int>::*psize_vec_int)() const = &std::vector<int, std::allocator<int>>::size;
 
cout << (v.*psize_vec_int)() << endl;
Vourhey
Почетный модератор
6474 / 2249 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
10.03.2014, 04:51     Указатель на метод класса #4
Цитата Сообщение от Arkaniy Посмотреть сообщение
Просто думается, что обращаться напрямую через указатель быстрее нежели через класс.
Нет.
DrOffset
6913 / 4106 / 936
Регистрация: 30.01.2014
Сообщений: 6,905
10.03.2014, 05:10     Указатель на метод класса #5
Цитата Сообщение от Arkaniy Посмотреть сообщение
Просто думается, что обращаться напрямую через указатель быстрее нежели через класс
Нет. Потому что указатель на метод, это не указатель на самом деле, а смещение. Обращение через него требует указатель на объект. Следовательно получится тоже самое.
И вообще не там ты оптимизировать затеял. Самая лучшая оптимизация - алгоритмическая. А все эти клевые шутки, которые мы можем сотворить с языком в коде, на самом деле мало что дают. Однако это не значит что надо писать как попало, просто надо писать без лишнего фанатизма.
Arkaniy
106 / 106 / 6
Регистрация: 29.08.2012
Сообщений: 453
10.03.2014, 14:35  [ТС]     Указатель на метод класса #6
Спасибо всем отписавшимся, но я ,по-видимому, не верно поставил задачу
Из того, что вы ответили, я примерно понял как это работает, как получить указатель на метод и то, что мне нужно читать про аллокаторы. Но мне нужен указатель на возвращаемое значение.
Мне нужно что-то вроде этого
C++
1
int *nPoints = &Graph::pointsVector.size();
И опять же, возможно я снова заблуждаюсь о повышении скорости работы.
DrOffset
6913 / 4106 / 936
Регистрация: 30.01.2014
Сообщений: 6,905
10.03.2014, 14:37     Указатель на метод класса #7
Arkaniy, см. rvalue references и move semantics из нового стандарта. А так же почитай про RVO.
Arkaniy
106 / 106 / 6
Регистрация: 29.08.2012
Сообщений: 453
10.03.2014, 14:41  [ТС]     Указатель на метод класса #8
DrOffset, довольно лаконично. Но спасибо и на этом, буду искать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.03.2014, 14:45     Указатель на метод класса
Еще ссылки по теме:

Указатель на метод класса (ошибка) - C++
помогите исправить код что бы разобраться в нем) взято с книги и не компилиться. выкидывает ошибку (code::blocks) : &quot;ошибка:...

Аргумент функции - указатель на метод класса - C++
Здравствуйте. Содержание задания - написать программу, создающую копию выбранного пользователем файла при помощи n-го кол-ва потоков...

Шаблон класса двусвязного списка, метод, возвращающий указатель - C++
Пишу шаблон класса двусвязного списка. Всё в хедере. В классе присутствует структура item. Пытаюсь написать метод, возвращающий указатель...

Как сделать указатель/ссылку на метод конкретного экземпляра класса - C++
Добрый день. Подскажите можно ли в c++ каким либо образом объявить указатель/ссылку на функцию конкретного экземпляра класса и вызвать ее...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
DrOffset
6913 / 4106 / 936
Регистрация: 30.01.2014
Сообщений: 6,905
10.03.2014, 14:45     Указатель на метод класса #9
Arkaniy, я понял что тебе нужно и направил по прямой дороге. Все, что ты хочешь, есть в этих строках. Почему несостоятелен твой пример ты тоже поймешь по дороге, в крайнем случае вернешься и спросишь
Для всех этих понятий есть статьи на русском в википедии. Предлагаю начать оттуда. Остальные ссылки есть в примечаниях к статьям.
Yandex
Объявления
10.03.2014, 14:45     Указатель на метод класса
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru