В 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;
}
Здравствуйте, dvurukov, Вы писали:
Нужно вот так:
vecSome.push_back(&CSome::DoSome);
То, что VC7 компилит первоначальный пример — его вольность.
Здравствуйте, Bell, Вы писали:
B>Здравствуйте, dvurukov, Вы писали:
B>Нужно вот так:
B>B>vecSome.push_back(&CSome::DoSome);
B>
B>То, что VC7 компилит первоначальный пример — его вольность.
Спасибо. Точно — совсем забыл. Балует
семерка, балует
Здравствуйте, dvurukov, Вы писали:
Может следует написать вот так?
D>
D> void Append()
D> {
D> vecSome.push_back(&CSome::DoSome);
D> }
D>};
D>