Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.07.2009, 09:46   #1
Spice
Пользователь
 
Регистрация: 14.07.2008
Сообщений: 37
По умолчанию Проблема при переборе списка

При переборе списка компилятор ругается на строчку "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;
}
Что выбрать: зависимость от свободы или свободу от зависимости?..
Spice вне форума Ответить с цитированием
Старый 17.07.2009, 10:05   #2
Spice
Пользователь
 
Регистрация: 14.07.2008
Сообщений: 37
По умолчанию

Проблема решена. Умный человек с другого форума проявил быструю реакцию :-)

Код:
class MyClass
{
public:
	MyClass(int i);

	int geti() const;

protected:
	int i;
};
Что выбрать: зависимость от свободы или свободу от зависимости?..
Spice вне форума Ответить с цитированием
Старый 22.07.2009, 06:29   #3
Spice
Пользователь
 
Регистрация: 14.07.2008
Сообщений: 37
По умолчанию

Возникла подобная проблема. Только в данном случаи метод класса не возвращает значения, а изменяет значение приватного поля класса.
"Error 1 error C2662: 'Point::SetDX' : cannot convert 'this' pointer from 'const Point' to 'Point &' f:\coding\c++\list_test\mainunit.cp p 61 LIST_TEST"

Код:
#include <stdlib.h>
#include <list>
using namespace std;

class Point
{
public:
	Point();
	Point(float dX, float dY);

	void SetDX(float dX);
	void SetDY(float dY);

	float GetDX() const;
	float GetDY() const;

protected:
	float dX;
	float dY;
};

Point::Point(): dX(0),dY(0)
{
}

Point::Point(float dX, float dY)
{
	this->dX = dX;
	this->dY = dY;
}

void Point::SetDX(float dX)
{
	this->dX = dX;
}

void Point::SetDY(float dY)
{
	this->dY = dY;
}

float Point::GetDX() const
{
	return this->dX;
}

float Point::GetDY() const
{
	return this->dY;
}

void main()
{
	list<Point> lsPoint;
	lsPoint.push_back(Point());
	lsPoint.push_back(Point(10, 10));
	lsPoint.push_back(Point(20, 20));

	for(list<Point>::const_iterator indexPoint = lsPoint.begin(); indexPoint != lsPoint.end(); indexPoint++)
	{
		indexPoint->SetDX(100);

		printf("adr = %x; x=%f, y=%f \n", &(*indexPoint), indexPoint->GetDX(), indexPoint->GetDY());
	}

	getchar();

	return;
}
Что выбрать: зависимость от свободы или свободу от зависимости?..
Spice вне форума Ответить с цитированием
Старый 22.07.2009, 08:22   #4
Spice
Пользователь
 
Регистрация: 14.07.2008
Сообщений: 37
По умолчанию

Вопрос снова снят.
Использованием list<T>::iterator вместо list<T>::const_iterator
Что выбрать: зависимость от свободы или свободу от зависимости?..
Spice вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Формирование списка дат при помощи формул EducatedFool Microsoft Office Excel 10 17.03.2009 09:30
Проблема выгрузки большого списка в Access Zaps БД в Delphi 1 25.02.2009 13:47
Mootools.Проблема определения события OnClick элемента списка при его динамическом создании. ilusha JavaScript, Ajax 2 25.02.2009 10:43
Ошибка при создании головного элемента двусвязного списка Дамир Помощь студентам 1 16.11.2008 16:09