struct vColl {
public:
int a;
vColl()
{
a=0;
}
vColl(int _a) {
a = _a;
}
};
class C_CCSFix
{
CAtlList<vColl> Colums;
C_CCSFix() {
}
void Add(int _a) {
// vColl Coll = new vColl(_a); // тоже дает ошибку
vColl Coll(_a);
POSITION pos = Colums.AddTail(&Coll);
}
};
Visual C++ ATL ошибка 2664
Я столкнулся с проблемой конвертации типов, за не достаточным знанием С++ не могу решить проблему. Помогите разобраться.
Пример кода:
Код:
Код:
vColl *Coll = new vColl(_a);
Код:
vColl Coll(_a);
Error 1 error C2664: 'POSITION ATL::CAtlList<E>::AddTail(const vColl &)' : cannot convert parameter 1 from 'vColl *' to 'const vColl &'
Код:
vColl *Coll = new vColl(_a);
Error 1 error C2664: 'POSITION ATL::CAtlList<E>::AddTail(const vColl &)' : cannot convert parameter 1 from 'vColl **' to 'const vColl &'
Ругается он на эту строку:
Код:
POSITION pos = Colums.AddTail(Coll);
Код:
void Add(int _a)
{
POSITION pos = Colums.AddTail(Coll(_a));
}[FONT=verdana]
{
POSITION pos = Colums.AddTail(Coll(_a));
}[FONT=verdana]
тоже не работает?
Код:
POSITION pos = Colums.AddTail(vColl(_a));
Заработало, спасибо большое!
Заработало эт хорошо, но вот почему именно такая конструкция я не понял)
ошибка была во взятии адреса "&" или помещении указателя в контейнер, а он объявлен как хранилище объектов а не указателей