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

    Andy-C
    @Andy-C
    Этот код работает предсказуемо. Смотрите вокруг и всякие побочные эффекты.
    #include <iostream>
    #include <string>
    
    class proc
    {
        private:
             std::string _str;
        public:
        proc(const std::string str=""):_str(str){}
        void add_line(const std::string& str)
        {  _str += (str + "\n"); }
        const std::string& get_str() const 
        { return _str; }
    };
    
    int main()
    {
        void (proc::*al)(const std::string&);
        al = &proc::add_line;
    
        proc* runer = new proc("1. <start_line>\n");
        
    //    std::cout<<runer->get_str();
        (runer->*al)("2. <new_line>");
        std::cout<<runer->get_str()<<std::endl;
        return 0;
    }


    ЗЫ. Если указатель надо хранить передавать см. std::mem_fn, а лучше - boost::function
    Ответ написан
    Комментировать