• Как получить указатель на метод объекта?

    Можно
    Если напрямую, то надо использовать тип "указатель на функцию член" вида Ret (Class::*)(Args...) [const]. Сам указатель получать &Class::Fun, а вызывать операторами .* или ->*
    Или использовать std::function (boost::function), std::bind (boost::bind) или std::mem_fun, std::mem_fn для более унифицированного подхода:

    struct some
    {
    	some() : value(0) {}
    
    	int inc() { return ++value; }
    	int dec() { return --value; }
    	int get() const { return value; }
    
    	int value;
    };
    
    int main()
    {
    	some s;
    
    	int (some::*inc_f)() = &some::inc; // inc_f - указатель на функцию
    	std::cout << "(s.*inc_f)() = " << (s.*inc_f)() << std::endl; // оператор .* - оператор вызова по указателю на функцию
    	int (some::*val_ptr) = &some::value; // val_ptr - указатель на член
    	s.*val_ptr = 10;
    	std::cout << "s.*val_ptr = " << s.*val_ptr << std::endl;
    
    	int (some::*const_f)() const = &some::get; // const-функция
    	std::cout << "s.*const_f() = " << (s.*const_f)() << std::endl;
    
    	using namespace std::placeholders;
    	std::function<int (some&)> mem_f;
    	
    	mem_f = std::bind(&some::inc, _1); // биндим на функцию-член, _1 - placeholder для объекта
    	std::cout << "mem_f(s) = " << mem_f(s) << std::endl; // s.inc();
    	mem_f = std::mem_fn(&some::dec); // другой способ через mem_fn
    	std::cout << "mem_f(s) = " << mem_f(s) << std::endl; // s.dec();
    
    	std::function<int()> mem_f_ = std::bind(&some::inc, &s); // биндим на функцию член и сразу указываем объект, получаем функцию без аргументов
    	std::cout << "mem_f_() = " << mem_f_() << std::endl; /// s.inc();
    
    	std::function<int(some const &)> const_fn = std::mem_fn(&some::get); // some const &
    	std::cout << "const_fn(s) = " << const_fn(s) << std::endl;
    
        return 0;
    }
    Ответ написан
    Комментировать
  • Как осуществляются инвестиции в онлайн-проекты, продажа долей?

    По инвестированию посмотрите видео-материалы ФРИИ.
    ФРИИ - это акселератор "Фонд развития интернет-инициатив"
    Рекомендую видео (первые 60 минут ) - мне очень помогло понять как рассчитать какую долю продавать, и понять на что смотрят инвесторы, в частности инвесторы ФРИИ.
    Ответ написан
    Комментировать
  • Есть ли сертификационные программы по языку C/C++?

    @mamkaololosha
    brainbench.com может выдать сертификат.
    Но тут есть нюанс, что сертификаты по С/C++ бессмысленны. Это не фулл-стековые языки: там нет GUI, потоков, графики, БД. Могут быть сертификаты "Разработка БД на С++ с использованием Oracle" или "Разработка графики на С++ с использованием Direct X". Но это джуниоровский уровень. Полная пересборка С++-проекта может занять 2-3-4 часа. Почитайте статью про chromium habrahabr.ru/post/165193/. Тут есть парадокс, что между джуниором С++ и хорошим программистов С++ очень большая пропасть. Пропасть может быть в 5-7 лет работы. Тут сертификаты уже не помогут.
    Ответ написан
    2 комментария