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

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

Войти
Регистрация
Восстановить пароль
 
Forumhelp
1 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 130
#1

Получить доступ к методу, который при наследовании стал private - C++

19.01.2014, 12:10. Просмотров 307. Ответов 7
Метки нет (Все метки)

Как получить доступ к методу, который при наследование стал private ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2014, 12:10     Получить доступ к методу, который при наследовании стал private
Посмотрите здесь:

Получить доступ к private полю объекта - C++
Возможно я не правильно поставил свой вопрос но вопрос в следующем. Там где реализация метода poly_calc () я пытаюсь через указатель на...

Как получить доступ в private из дочернего класса? - C++
Привет :) Изучаю наследование. Столкнулся с такой проблемой. Написал класс "Figure" и создал его дочерний класс "Square". ...

Не могу получить доступ к private данным через дружественную функцию - C++
Заголовочный файл: class Vector { private: int * vect; int size; public: Vector(); explicit Vector(int size1); ...

Доступ к данным при наследовании - C++
здравствуйте, есть иерархия классов, схематично можно представить так: namespace Singl { class CObs {}; template<typename T> ...

Доступ к переменным базового класса при наследовании - C++
Есть следующий код class Base { protected: int x; Base* enemy; public: Base() {}

Доступ к объекту базового класса при закрытом наследовании - C++
Есть класс Pair из стандартной библиотеки. Он у меня содержит 2 массива valarray. От класса Pair я создаю наследника Wine. В классе Wine...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
19.01.2014, 12:11     Получить доступ к методу, который при наследовании стал private #2
Forumhelp, вроде перегружаемые функции в protected находятся?
TigerZT
0 / 0 / 0
Регистрация: 17.01.2014
Сообщений: 9
19.01.2014, 12:16     Получить доступ к методу, который при наследовании стал private #3
Если через вижуал то просто в кореном файле переименовать приват на паблик
Бедел
232 / 28 / 4
Регистрация: 04.06.2010
Сообщений: 283
19.01.2014, 12:22     Получить доступ к методу, который при наследовании стал private #4
А ещё можно использовать дружественную функцию, которая через объект обращается к закрытым методам и атрибутам класса, не являясь его членом.

Добавлено через 1 минуту
Вот наклепал быстренько простой пример.
P.S. переменные a,b по умолчанию - private.

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
#include <iostream>
 
using namespace std;
 
class exe
{
    int a,b;
public:
    exe (int i, int j)
    {
        a=i; b=j;
    }
    friend int fun (exe ob);
};
int fun (exe ob)
{
    return ob.a+ob.b;
}
int main()
{
    exe ob1(6,3);
    int s;
    s=fun(ob1);
    cout << "s= " << s << endl;
    return 0;
}
Forumhelp
1 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 130
19.01.2014, 12:29  [ТС]     Получить доступ к методу, который при наследовании стал private #5
Цитата Сообщение от Folko Посмотреть сообщение
Forumhelp, вроде перегружаемые функции в protected находятся?
Мне нужно в производном классе получить доступ к методу базового класса, который при наследование в наследнике стал ptivate, поскольку наследование с доступом ptivate.

Добавлено через 5 минут
Бедел, тут показан пример как получить доступ к полям. А к методам также можно получить доступ?
Бедел
232 / 28 / 4
Регистрация: 04.06.2010
Сообщений: 283
19.01.2014, 12:43     Получить доступ к методу, который при наследовании стал private #6
Цитата Сообщение от Forumhelp Посмотреть сообщение
Бедел, тут показан пример как получить доступ к полям. А к методам также можно получить доступ?
Хороший вопрос.. Боюсь, что нет. Сейчас подумаю, может ещё придет что в голову, кроме дружественной функции.
Бедел
232 / 28 / 4
Регистрация: 04.06.2010
Сообщений: 283
19.01.2014, 12:49     Получить доступ к методу, который при наследовании стал private #7
Получить доступ к методу, который при наследовании стал private
Смотрите, что пишет Дейтел. Сделайте производный класс "другом" базового)
Сам только учусь, так что строго не судите, ничего лучше пока в голову не пришло)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.01.2014, 12:54     Получить доступ к методу, который при наследовании стал private
Еще ссылки по теме:

доступ к private членам - C++
Здравстуйте. недавно нарвался на непонятное мне поведение в С++. Вот код: #include &lt;iostream&gt; class A { private: int x; ...

Доступ к private структуре класса - C++
class MyClass { private: struct TMass{ char str2; int x; TMass *next; } *begin; public: ...

Доступ к private переменной класса из его потомка - C++
Здравствуйте! Как получить доступ к закрытой переменной родительского класса в методе наследника? #include &lt;stdio.h&gt; class...

Доступ к приватному методу наследника через родителя - C++
Тут натолкнулся на интересную штуку. #include &lt;iostream&gt; using namespace std; class A { public: virtual void f() { ...


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

Или воспользуйтесь поиском по форуму:
Бедел
232 / 28 / 4
Регистрация: 04.06.2010
Сообщений: 283
19.01.2014, 12:54     Получить доступ к методу, который при наследовании стал private #8
Вот небольшие примеры.
C++
1
2
3
4
5
6
7
8
9
10
class A{
private:
int m_a;
 
friend class B;
};
class B{
public:
void change( A *aptr, int a ){ aptr->m_a = a; }
};

C++
1
2
3
4
5
6
  class X2 { friend class X1; ... };
  class X1 { ... // Определение дружественного класса.
     void f1(...);
     void f2(...);
      .    .    .    .
  };
Yandex
Объявления
19.01.2014, 12:54     Получить доступ к методу, который при наследовании стал private
Ответ Создать тему
Опции темы

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