Форум программистов, компьютерный форум CyberForum.ru

Не могу обратиться к методу класса в функции - C++

Восстановить пароль Регистрация
 
GotoFreeMan
0 / 0 / 0
Регистрация: 09.12.2011
Сообщений: 20
09.12.2011, 21:07     Не могу обратиться к методу класса в функции #1
Добрый день. При написании программы возникла проблема - в функции не могу обратиться к методу класса: компилятор выдаёт ошибку "passing 'const ROADS' as 'this' argument of 'char ROADS::ret_rt()' discards qualifiers".
Вот описание класса.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class ROADS                     //Класс дорог
{
    private:
    long double X0, Y0, X1, Y1, radius, alpha, omega;//Координаты начала, конца или центра окружности, радиус, начальный и конечный угол, ширина полосы 2 метра
    long double PointOfGrav, PARK;                   //Коэфициент притяжения
    int minspeed,maxspeed;                           //Максимально и минимально допустимые скорости
    char roadtype;                                   //Кольцо или линия
    public:
    char ret_rt(){return roadtype;};
};
В main объявляю массив объектов следующим образом
int main()
{...
int NumOfRoad=numberroad(inputfile);
ROADS ROAD[NumOfRoad];
...}
И наконец суть - функция, в которую я передаю указатель на массив объектов класса дорог
void distribution(const ROADS* road[], const int nor, CARS* cardis[], const int kolcar)
{
    long double sum=0;
    const int cnstkolcar=kolcar;
    for (int i=0; i<nor;i++)//Вычисляем общую длину дорог
    {
        char ch = road[i]->ret_rt();//В этой строчке компилятор выдаёт вышеприведённую ошибку
        switch (ch)
        ...
Пожалуйста, подскажите в чём проблема и если можно, то способ её решения. Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2011, 21:07     Не могу обратиться к методу класса в функции
Посмотрите здесь:

передача указателя на строку методу класса C++
C++ Как из другой функции обратиться к членам класса окна?
C++ Вызов метода производного класса через обращение к методу базового класса
C++ Не выполняется условие равенства переменной методу класса
Можно ли из базового класса обратится к виртуальному методу производного? C++
C++ Не могу обратиться к Privat члену класса из ф-и Friend. Почему?
C++ Не удается обратиться к свойству класса из метода класса
Может ли метод родительского класса обратиться к полю дочернего класса C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
09.12.2011, 21:59     Не могу обратиться к методу класса в функции #2
Вы пытаетесь вызвать неконстантную функцию через указатель на константу.
const ROADS* road[] - что вот это? константный массив на указатели? или может массив на константные указатели? а как выглядит константный массив на неконстантные указатели? Короче, подобная запись лишь запутывает. Везде, где нужно передавать массивы достаточно пользоваться парой аргументов: указатель на начало массива + количество элементов массива. Наличие квадратных скобок мне кажется лишней.
DeadRipper
64 / 70 / 3
Регистрация: 25.06.2009
Сообщений: 244
09.12.2011, 22:29     Не могу обратиться к методу класса в функции #3
либо сделать функцию в классе константной,по стандарту она получает this-неконстантный
а массив у вас именно из константных классов.

C++
1
 char ret_rt() const {return roadtype;};
Yandex
Объявления
09.12.2011, 22:29     Не могу обратиться к методу класса в функции
Ответ Создать тему
Опции темы

Текущее время: 07:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru