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

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

Войти
Регистрация
Восстановить пароль
 
 
MrAndrey_ka
78 / 78 / 2
Регистрация: 13.05.2009
Сообщений: 537
Записей в блоге: 1
#1

Перемещение метода класса между секциями - C++

04.04.2014, 17:38. Просмотров 591. Ответов 22
Метки нет (Все метки)

есть 2 класса
C++
1
2
3
4
5
6
7
8
class A{
public:
int ABS(int Count, ...);
int ARS(int Count, ...);
}
 
class B:public A{
}
как сделать чтобы метод ABS в классе В, был в секции private а не public?
а метод ARS так и остался в public
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2014, 17:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перемещение метода класса между секциями (C++):

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

Вызов метода класса из метода другого класса - C++
Помогите школнегу Имеется несколько классов class Com { protected: unsigned char bufrd, bufwr; unsigned char tx_index,...

Вызов метода производного класса через обращение к методу базового класса - C++
Добрый день. Изучаю основы ООП, наткнулся на проблему. Если создавать классы внутри main.cpp, то всё нормально. Если же создавать в...

Ошибка при вызове метода класса в методе другого класса - C++
Господа программисты, возникла такая проблема. При вызове метода класса в методе другого класса выходит такая ошибка " нестандартный...

Вызов метода класса без создания экземпляра класса. - C++
В общем мне для функционирования одной программы нужно постоянно вызывать метод одного из классов. Я это делаю с помощью new - delete. Мне...

Указатель на метод класса в качестве аргумента метода класса - C++
Функция _createFun вызывается для создания ХХХ в основном классе. Но вот потребовалось создать ХХХ в дополнительном классе. Вопрос: как...

22
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
07.04.2014, 18:16 #16
Цитата Сообщение от DrOffset Посмотреть сообщение
В общем здесь все довольно просто:
Ларчик просто открывался
Теперь ещё бы лавочку прикрыть:
C++
1
2
B b;
b.A::ABS(0);
0
DrOffset
7376 / 4453 / 1009
Регистрация: 30.01.2014
Сообщений: 7,304
07.04.2014, 19:51 #17
Tulosba, лавочку можно прикрыть через приватное наследование. Но тогда мы потеряем в приводимости указателей и возможно поменяем смысл, который отражает код. Если же задача позволяет, то вполне решение.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class A
{
public:
    int ABS(int Count, ...);
    int ARS(int Count, ...);
};
 
class B : private A
{
public:
    using A::ARS;
 
private:
    using A::ABS;
};
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
07.04.2014, 20:41 #18
Цитата Сообщение от DrOffset Посмотреть сообщение
Если же задача позволяет, то вполне решение.
А обоснованность такого подхода (сокрытие раннее открытого метода) есть?
0
DrOffset
7376 / 4453 / 1009
Регистрация: 30.01.2014
Сообщений: 7,304
07.04.2014, 20:46 #19
Цитата Сообщение от Tulosba Посмотреть сообщение
А обоснованность такого подхода
А это ты не у меня спрашивай
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
07.04.2014, 21:11 #20
DrOffset, у ТСа я уже спрашивал. Ответа пока нет. Мне с идиологической точки зрения интересно послушать версии.
0
DrOffset
7376 / 4453 / 1009
Регистрация: 30.01.2014
Сообщений: 7,304
07.04.2014, 21:59 #21
Tulosba, не знаю, адаптер какой-нибудь или фасад. Приведение интерфейса в соответствие с какими-либо требованиями. А включение не используется, потому что переопределять методов нужно много.
В любом случае, я убежден, что на каждый такой пример найдется пара контрпримеров, которые опровергнут полезность первого.
1
MrAndrey_ka
78 / 78 / 2
Регистрация: 13.05.2009
Сообщений: 537
Записей в блоге: 1
08.04.2014, 11:48  [ТС] #22
Класс А, это умный указатель на буфер данных. В котором есть методы:
ARS(void*val, int Sz); - создает новый буфер и записывает туда данные
ABS(size_t Count, ...); - похож на первый но отличаются передаваемые данные

а класс B, это будет строковой класс, и метод ABS ему не нужен, не верно он работает в данном контексте
0
stima
490 / 342 / 40
Регистрация: 22.03.2011
Сообщений: 1,095
Завершенные тесты: 2
08.04.2014, 12:14 #23
Вынесите функции ARS, ABS, реализацию умного указателя в отдельные классы и потом наследуйтесь.
0
08.04.2014, 12:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.04.2014, 12:14
Привет! Вот еще темы с ответами:

Обработка метода класса в зависимости от типа данного класса - C++
Имеется класс родителя A с методом Update(), этот класс имеет 2 дочерних класса B, C, каждый из них имеет свой метод обработки Update:...

Вызов динамического метода класса по указателю на объект класса - C++
Как это можно сделать? И хотелось бы как можно проще.

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

Оптимизация работы метода класса с объектами класса [C++] - C++
Здравствуйте! Я хочу сделать 25 000 объектов класса, в последствии они все будут разными, но сейчас, для упрощения задачи, я делаю их...


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

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

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