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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2008, 04:01   #1
softrix
 
Регистрация: 02.03.2008
Сообщений: 8
По умолчанию константность в классе

Подскажите, есть класс:

Код:
rect.h

class Rect{
public:
int GetArea() //Вычисляет площадь
{
     return 100;
}

bool Func(const Rect &ref)
{
     int S = ref.GetArea();  //Тут ошибка !


if(S)  return true;
return false;
}
Выдает на это такую ошибку:
error C2662: Rect::GetArea' : cannot convert 'this' pointer from 'const Rect' to 'Rect &'

Как мне получить площадь фигуры?
softrix вне форума Ответить с цитированием
Старый 17.06.2008, 00:21   #2
filosof_x86
...
Форумчанин
 
Аватар для filosof_x86
 
Регистрация: 01.06.2008
Сообщений: 134
По умолчанию

ref – константный объект, следовательно надо исключить даже возможность модификации объекта. Фунции-члены также может быть причиной изменения объекта. Поэтому, чтобы вызвать GetArea() у константного объекта надо объявить GetArea() как константным методом, т.о. запретить этой функции модификацию каких либо полей класса:
Код:
int GetArea() const
{  
     return 100;  
}
filosof_x86 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Экзамен в 9 классе по ИВТ NecRoMat Свободное общение 6 11.06.2008 11:56
Контроль ввода данных в классе oleg kutkov Общие вопросы C/C++ 1 14.04.2008 22:19
можно ли в одном классе реализовать несколько интерфейсов Galinka08 Общие вопросы по Java, Java SE, Kotlin 2 08.03.2008 21:33
Получение информации о классе Sibedir Общие вопросы Delphi 7 07.12.2007 14:37