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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
AlexCore
2 / 2 / 0
Регистрация: 28.08.2013
Сообщений: 26
#1

Закрыть методы класса, от которого идет наследование - C++

28.08.2013, 21:41. Просмотров 312. Ответов 4
Метки нет (Все метки)

Здравствуйте.

Подскажите пожалуйста, как можно сделать так, чтобы некоторые методы класса, от которого идет наследование другого классы, были запрещены для использования.

Приведу пример: Если класс односвязанного списка:

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
class Element{
public:
    value_t value;
    Element * next;
};
 
class LinkedList{
public:
    LinkedList(): head(0), tail(0), size_(0){};
    ~LinkedList();
 
    void push_back(value_t);
    void push_front(value_t);
    void reverse();
    void pop_back();
    void pop_front();
    Element * search(value_t);
    
    void display();
    long long size();
 
private:
    Element * head, * tail;
    long long size_;
};
На его основе мне нужно создать класс стека. Такие методы, как переворот, pop/push_back, search мне не просто не нужны, их не должно быть в классе стека.

Подскажите пожалуйста, как это можно сделать. Каким то модификатором доступа?

Заранее спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.08.2013, 21:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Закрыть методы класса, от которого идет наследование (C++):

Классы, функции методы класса, наследование - C++
Задание: Объявите класс Tarray, создающий тип "Массив". Определите элементы-данные класса: - Указатель на область памяти,в которой...

Закрыть все переменные класса и добавить методы доступа к ним - C++
Привет ребят помогите пожалуйста, создал класс открытый, нужно закрыть все переменные и создать функцию с помощью которой можно будет...

Наследование и виртуальные методы - C++
В описании задания буквой А) обозначается задание на базовый класс, а буквой Б) - на класс наследник, или класс, использующий класс А как...

Наследование и виртуальные методы - C++
Начал разбираться с темой наследование и не совсем понимаю как наследуются виртуальные методы, конструкторы и деструкторы виртуальные и...

C++ ООП Наследование методы - C++
у меня тут класс A и класс B который наследует B наслудет конструкор класса A, в этом конструторое идет вызов метода из A а мне надо...

Наследование. Виртуальные методы/деструкторы. - C++
Есть базовый класс Cell (код можно даже не смотреть - он просто для иллюстрации -> вопрос внизу) class Cell { friend class Obstacle;...

4
gray_fox
What a waste!
1521 / 1226 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
28.08.2013, 22:09 #2
AlexCore, private\protected наследование, либо композиция вместо наследования.

Добавлено через 23 минуты
С private наследованием это выглядит примерно так:
C++
1
2
3
4
5
6
7
class Stack : LinkedList {
 
public:
    using LinkedList::push_front;
    using LinkedList::pop_front;
    // всё остальное, что должно быть public
};
1
AlexCore
2 / 2 / 0
Регистрация: 28.08.2013
Сообщений: 26
28.08.2013, 22:17  [ТС] #3
Спасибо, возможно, получится сделать некоторые методы дружественными, то есть применить композицию
0
gray_fox
What a waste!
1521 / 1226 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
28.08.2013, 22:20 #4
Цитата Сообщение от AlexCore Посмотреть сообщение
возможно, получится сделать некоторые методы дружественными, то есть применить композицию
Эм, зачем там объявления друзей? Просто адаптор:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Stack {
 
public:
   void push_front(value_t value) {
      list.push_front(value);
   }
 
   void pop_front() {
      list.pop_front();
   }
 
   // И т.д.
 
private:
   LinkedList list;
};
1
AlexCore
2 / 2 / 0
Регистрация: 28.08.2013
Сообщений: 26
28.08.2013, 22:39  [ТС] #5
Огромное спасибо, получилось
0
28.08.2013, 22:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.08.2013, 22:39
Привет! Вот еще темы с ответами:

Шаблон класса, параметром которого должны являться наследники определённого класса - C++
Сразу извиняюсь за нубский вопрос. Суть в том, что я хочу сделать шаблон класса, параметром которого должны являтся наследники...

Нужен пример неизменяемого класса и класса от которого нельзя наследоваться - C++
Здравствуйте! Нужно привести пример неизменяемого класса и класса от которого нельзя наследоваться.

Методы класса внутри определения класса - C++
Все привет! Решил закрепить свои знания по C++, читаю Р.Лафоре - "Объектро-ориентированное программирование в C++". В книге, на...

Как в строке можно найти последнее слово, после которого идет точка - C++
Здравствуйте. Не могли бы подсказать,как в строке можно найти последнее слово, после которого идет точка. может есть какая то функция..?


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru