вектор указателей на функции-члены класса
От: dvurukov США  
Дата: 06.10.05 08:26
Оценка:
В 7-ой студии все ок. В 6 —

error C2664: 'push_back' : cannot convert parameter 1 from 'void (class CSome *)' to 'void (__thiscall CSome::*const & )(class CSome *)'

Код
#include "stdafx.h"
#include <vector>

using namespace std;

class CSome
{
public:
    typedef void (CSome::*PtrDoSome)(CSome*);
    
    void DoSome(CSome*)
    {
    }
    
    vector<PtrDoSome> vecSome;
    
    void Append()
    {
        vecSome.push_back(DoSome);
    }
};

int _tmain(int argc, _TCHAR* argv[])
{
    CSome some;
    some.Append();
    
    return 0;
}
Re: вектор указателей на функции-члены класса
От: Bell Россия  
Дата: 06.10.05 08:32
Оценка:
Здравствуйте, dvurukov, Вы писали:

Нужно вот так:

vecSome.push_back(&CSome::DoSome);


То, что VC7 компилит первоначальный пример — его вольность.
Любите книгу — источник знаний (с) М.Горький
Re[2]: вектор указателей на функции-члены класса
От: dvurukov США  
Дата: 06.10.05 08:37
Оценка:
Здравствуйте, Bell, Вы писали:

B>Здравствуйте, dvurukov, Вы писали:


B>Нужно вот так:


B>
B>vecSome.push_back(&CSome::DoSome);
B>


B>То, что VC7 компилит первоначальный пример — его вольность.


Спасибо. Точно — совсем забыл. Балует
семерка, балует
Re: вектор указателей на функции-члены класса
От: Glоbus Украина  
Дата: 06.10.05 08:56
Оценка:
Здравствуйте, dvurukov, Вы писали:


Может следует написать вот так?

D>

    
D>    void Append()
D>    {
D>        vecSome.push_back(&CSome::DoSome); 
D>    }
D>};

D>
Удачи тебе, браток!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.