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

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

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

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

04.04.2014, 17:38. Просмотров 564. Ответов 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
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2014, 17:38     Перемещение метода класса между секциями
Посмотрите здесь:

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

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

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

Не удается обратиться к свойству класса из метода класса - C++
Пишу хедер для работы с файлами такой структуры: nametype1 name1 name2 name3 name4 nametype2

Шаблон метода класса - C++
Здравствуйте, могу ли я создавать шаблоны методов "нешаблонных" классов? например class My_class { public: template<class Data> ...

Переопределение метода класса-шаблона - C++
Привет народ. Есть такой код: typedef OS::process<OS::pr0, 90> TProc1; TProc1 Proc1; template<> void Proc1::exec() { //тут...

STL вызов метода класса - C++
Доброго времени суток!:) У меня есть класс, в нем поле вектор пар, я хочу реализовать метод вывода этого вектора внутри класса, но что-то...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
07.04.2014, 18:16     Перемещение метода класса между секциями #16
Цитата Сообщение от DrOffset Посмотреть сообщение
В общем здесь все довольно просто:
Ларчик просто открывался
Теперь ещё бы лавочку прикрыть:
C++
1
2
B b;
b.A::ABS(0);
DrOffset
7058 / 4199 / 949
Регистрация: 30.01.2014
Сообщений: 6,965
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;
};
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
07.04.2014, 20:41     Перемещение метода класса между секциями #18
Цитата Сообщение от DrOffset Посмотреть сообщение
Если же задача позволяет, то вполне решение.
А обоснованность такого подхода (сокрытие раннее открытого метода) есть?
DrOffset
7058 / 4199 / 949
Регистрация: 30.01.2014
Сообщений: 6,965
07.04.2014, 20:46     Перемещение метода класса между секциями #19
Цитата Сообщение от Tulosba Посмотреть сообщение
А обоснованность такого подхода
А это ты не у меня спрашивай
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
07.04.2014, 21:11     Перемещение метода класса между секциями #20
DrOffset, у ТСа я уже спрашивал. Ответа пока нет. Мне с идиологической точки зрения интересно послушать версии.
DrOffset
7058 / 4199 / 949
Регистрация: 30.01.2014
Сообщений: 6,965
07.04.2014, 21:59     Перемещение метода класса между секциями #21
Tulosba, не знаю, адаптер какой-нибудь или фасад. Приведение интерфейса в соответствие с какими-либо требованиями. А включение не используется, потому что переопределять методов нужно много.
В любом случае, я убежден, что на каждый такой пример найдется пара контрпримеров, которые опровергнут полезность первого.
MrAndrey_ka
77 / 77 / 2
Регистрация: 13.05.2009
Сообщений: 536
Записей в блоге: 1
08.04.2014, 11:48  [ТС]     Перемещение метода класса между секциями #22
Класс А, это умный указатель на буфер данных. В котором есть методы:
ARS(void*val, int Sz); - создает новый буфер и записывает туда данные
ABS(size_t Count, ...); - похож на первый но отличаются передаваемые данные

а класс B, это будет строковой класс, и метод ABS ему не нужен, не верно он работает в данном контексте
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.04.2014, 12:14     Перемещение метода класса между секциями
Еще ссылки по теме:

Ошибка в вызове метода класса - C++
Почему ошибка в строке 76 и 82? Покажите мне пожалуйста! #include <iostream> #include <conio.h> #include <cstring> #include...

Вызов метода другого класса - C++
#include<iostream> using namespace std; class A { public: void Show() { cout << "A" << endl; }; }; class B { ...

Вызов метода класса из DLL - C++
Добрый вечер. Имеется длл, в которой есть: 1. Класс, содержащий метод 2. Функция, возвращающая объект этого класса Если п.2...

Static в описании метода класса - C++
всем привет. что такое static в описании метода класса или самого класса. что такое статичный метод? что такое не статичный метод?

Счетчик запуска метода класса - C++
Добрый день. Мне нужен счетчик запуска метода класса. class A { public: ... void B (void) { static counter = 0; }


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

Или воспользуйтесь поиском по форуму:
stima
455 / 304 / 23
Регистрация: 22.03.2011
Сообщений: 990
Завершенные тесты: 2
08.04.2014, 12:14     Перемещение метода класса между секциями #23
Вынесите функции ARS, ABS, реализацию умного указателя в отдельные классы и потом наследуйтесь.
Yandex
Объявления
08.04.2014, 12:14     Перемещение метода класса между секциями
Ответ Создать тему
Опции темы

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