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

Не могу в дочернем классе вызвать protected метод - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сортировки http://www.cyberforum.ru/cpp-beginners/thread364954.html
Доброго времени суток. Задача была, отсортировать диагонали матрицы nxn, параллельные побочной методом выбора, вроде всё сделал, а побочную тоже сортирует, не могу допереть где '=' убрать #include <iostream> void choiseSorting (int **array, int quantity, bool top) { int Min = 0; int MinNum = 0; int Elem;
C++ помогите!! побитовыми операциями вычесть два числа вычесть из числа, введенного пользователем, число 3 используя ТОЛЬКО побитовые операции.помогите новечку) http://www.cyberforum.ru/cpp-beginners/thread364942.html
C++ Поиск в заданной строке последнего вхождения заданного символа
Помогите написать функцию, которая ищет в заданной строке последнее вхождение заданного символа (char *strrchr(const char *s1, int c)
C++ Программа для обнаружения и коррекции "пачки" ошибок
Доброе время суток! Кто может помочь с реализацией программы для обнаружения и коррекции "пачки" ошибок, которая предусматривает использование взвешенной контрольной суммы (с использованием арифметических операций). Конечно же не за спасибо. Также буду благодарен если у кого-то есть исходный код программы коррекции искаженных символов с использованием кодов Рида-Соломона.
C++ Табуляция http://www.cyberforum.ru/cpp-beginners/thread364897.html
Здравствуйте, помогите пожалуйста написать программу табулирования функции (х0 – начальное значение, хk – конечное значение аргумента, ∆x – прирост аргумента, n – кількість табуляций) при a = 3,3333; b = 0,765; r = 2,22; f = 1; q = 6,33; x0 = –1; xk = 3,5; ∆x = 0,25.
C++ Вычислить количество и произведение элементов массива, удовлетворяющих условию В одномерном массиве из n вещественных элементов вычислить : 1)количество элементов массива больших С. 2)произведение элементво массива , расположенных после максимального по модулю элемента. подробнее

Показать сообщение отдельно
Виктор_Сен
 Аватар для Виктор_Сен
29 / 22 / 1
Регистрация: 01.08.2011
Сообщений: 176
11.10.2011, 22:52     Не могу в дочернем классе вызвать protected метод
Всем привет! Начал писать одну программку, и столкнулся со следующей проблемой: у меня пока 2 класса: MemObject и Vector, где Vector наследует свойства MemObject. Так вот, в классе MemObject есть чисто виртуальный метод _detectMemUse, который вычистляет память, занимаемую объектом MemObject. Фишка в том, что объект класса Vector должен уметь содержать любые объекты класса MemObject, даже ещё неизвестные. Частью этого плана является то, что при вызове метода _detectMemUse для текущего вектора нужно вызвать этот метод для всех внутренних MemObject-ов, причём в зависимости от реального типа внутреннего объекта будет вызываться свой _detectMemUse. Вот с этим вызовом и возникла продлема. Вот фрагмент кода класса Vector:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
i8 Vector::_detectMemUse(bool isUpdateMemUse)
{
    i8 memUse=microDetectMemUse();
    if (type==MEM_OBJECT)
    {
        MemObject **tmpObj=(MemObject **)data;
        for (i8 i=0; i<cellsCount; i++)
        {
            if (*tmpObj) memUse+=(**tmpObj)._detectMemUse(isUpdateMemUse);
            tmpObj++;
        }
    }
    if (isUpdateMemUse) this->memUse=memUse;    
    return memUse;
}
А вот фрагмент класса MemObject:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public:
 
    typedef void (*MemControlPointer)(i8,i8);   
    typedef void (*MemErrorPointer)(i8,i8);
 
protected:
 
    //Учёт памяти
    MemControlPointer memControl;
    i8 memUse;
    bool isBlockedMemControl;
    i8 currElemNum;
    virtual void setIsBlockedMemControl(bool val)=0;
    virtual i8 _detectMemUse(bool isUpdateMemUse)=0;
 
    //Ошибка выделения памяти
    MemErrorPointer memError;
Вот что выдаёт компилятор: "error C2248: MemObject::_detectMemUse: невозможно обратиться к protected член, объявленному в классе "MemObject" D:\doc\dev\Visual Studio 2010\VectorTest\VectorTest\Vector.cpp". Так почему я не могу обратиться к protected методу?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru