При переборе списка компилятор ругается на строчку "printf("%i", index->geti());"
MyClass::geti' : cannot convert 'this' pointer from 'const MyClass' to 'MyClass &'
Объясните, пожалуйста кто сможет почему.
И в случаи, если так делать нельзя, подскажите, как это реализовать.
Код:
#include <stdlib.h>
#include <list>
using namespace std;
class MyClass
{
public:
MyClass(int i);
int geti();
protected:
int i;
};
MyClass::MyClass(int i)
{
this->i = i;
}
int MyClass::geti()
{
return 10;
}
void main()
{
list<MyClass> q;
q.push_back(MyClass(1));
q.push_back(MyClass(2));
for(list<MyClass>::const_iterator index = q.begin(); index != q.end(); index++)
{
printf("%i", index->geti());
printf("%s", "\n");
}
getchar();
return;
}