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

Что означает this в этом бинде - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Рекурсия: написать программу для вычисления рекурсивного ряда sin x http://www.cyberforum.ru/cpp-beginners/thread1102128.html
Здравствуйте. У меня возникли проблемы с написанием программы на рекурсию. Есть задание: y=8x+sinx. Нужно написать программу для вычисления этой функции, но в первом случае вместо синуса использовать ряд разложения синуса, а во втором вычислить через сам синус, что бы потом можно было сравнить результаты, какой точнее и какой выполняется быстрее. Если честно, я впервые с эти...
C++ Заполнение матрицы по спирали: модифицировать имеющийся код Подскажите пожалуста, каким образом поменять цикл, чтобы заполнение началось с другого угла массива? #include "stdafx.h" #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv) { int const n=11; int A; int i=1,j,k,p=n/2; http://www.cyberforum.ru/cpp-beginners/thread1102114.html
Как можно считывать из строки (std::string или char*) данные при помощи cin C++
Как можно считывать из строки (std::string или char*) данные при помощи cin (или может есть какой-нибудь поток-обертка?), как sscanf из char*?
C++ При потсроении пишет что конструктор либо недоступен либо объявлен как explicit
/*Все обьекты содержимые в контейнерах без проблем выводятся через потоковые итераторы и алгоритм copy. Но когда речь идет о собственных структурах происходит проблемка. При потсроении пишет что конструктор либо недоступен либо объявлен как explicit. Конкретно при запуске не работает строка где вызывается алгоритм copy.*/ #include <iostream> #include <fstream> #include <algorithm> #include...
C++ Непонятные символы в консоли http://www.cyberforum.ru/cpp-beginners/thread1102081.html
Выводит непонятные символы (пики, стрелки), скрин снизу, посмотрите. Вот сам код: #include <iostream> using namespace std; int main() { char text, resultMas; int i=0, resi=0, lenght=0, countWords=0, maxln, worldcount, b=0;
C++ Ошибка с шаблоном Собсно,только начал изучать шаблоны,кажется,что-то упустил,ну в общем вот: #include <iostream> using namespace std; template<class T> class random { public: подробнее

Показать сообщение отдельно
0x10
2454 / 1626 / 238
Регистрация: 24.11.2012
Сообщений: 4,001
21.02.2014, 17:38     Что означает this в этом бинде
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <functional>
#include <iostream>
 
struct Some
{
    void Do(const std::function<void(int)>& callback)
    {
        callback(0x10);
    }
};
 
struct A
{
    Some some;
 
    void g(int arg)
    {
        std::cout << "A::g " << arg << std::endl;
    }
 
    void f()
    {
        some.Do(std::bind(&A::g, this, std::placeholders::_1));
    }
};
 
 
int main()
{
    A obj;
    obj.f();
}
Добавлено через 2 минуты
По сути вызов callback(0x10) равносилен вызову obj.g(0x10).

Добавлено через 1 минуту
Как в нестатические методы класса попадает указатель this? Неявно передается первым аргументом.
Т.е. void A::f() {} эквивалентно свободной функции _A_f(A* const this).
Соответственно, если создаем функтор, связанный с методом класса, то нужно явно указать объект, для которого он будет вызван.
 
Текущее время: 07:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru