Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Tlya
12 / 12 / 10
Регистрация: 20.11.2015
Сообщений: 272
Завершенные тесты: 5
1

Запрет наследования члена базового класса

05.02.2019, 15:35. Просмотров 266. Ответов 8
Метки нет (Все метки)

Подскажите, как запретить?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class A
{
   public:
   int a;
};
 
class B : A
{
   public:
   int b;
};
 
B b;
 
b.a; // чтобы такого не было
кажется было какое-то специальное слово, но не уверен
"final" не предлагать, он для функций
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2019, 15:35
Ответы с готовыми решениями:

Определить глубину наследования до базового класса
На вход подается синтаксически верная программа на C++. искать буду примерно следующее class Name...

Запретить наследование члена базового класса
class A { public: int a; virtual void F()=0; }; Можно ли запретить наследование...

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

Почему объект производного класса не видит префиксный оператор из базового класса?
Короче создал я базовый класс с перегруженным префиксным оператором ++. Потом чтоб его...

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

8
rat0r
256 / 149 / 19
Регистрация: 16.02.2018
Сообщений: 603
05.02.2019, 15:47 2
C++
1
2
3
4
5
6
class B : A
{
    using A::a;
public:
    int b;
};
0
Tlya
12 / 12 / 10
Регистрация: 20.11.2015
Сообщений: 272
Завершенные тесты: 5
05.02.2019, 15:52  [ТС] 3
Еще варианты? Спец. слова точно нету?
0
ЗеХель
23 / 20 / 3
Регистрация: 04.11.2014
Сообщений: 243
Завершенные тесты: 1
05.02.2019, 15:55 4
Tlya, private - модификатор доступа
0
05.02.2019, 15:55
rat0r
256 / 149 / 19
Регистрация: 16.02.2018
Сообщений: 603
05.02.2019, 15:56 5
Вообще тут и так приватное наследование.
0
Azazel-San
Mental handicap
1082 / 540 / 154
Регистрация: 24.11.2015
Сообщений: 2,194
Завершенные тесты: 1
05.02.2019, 16:03 6
Tlya, в вашем примере вы не сможете сделать, так как вы пишите b.a...
0
ЗеХель
23 / 20 / 3
Регистрация: 04.11.2014
Сообщений: 243
Завершенные тесты: 1
05.02.2019, 16:04 7
Tlya, , не заметил private наследование, но тогда у вас и так вне доступа этот член родительского класса, при закрытом наследовании public члены родительского класса переходят в private интерфейс
0
Tlya
12 / 12 / 10
Регистрация: 20.11.2015
Сообщений: 272
Завершенные тесты: 5
05.02.2019, 16:13  [ТС] 8
Забыл дописать public (имелось в виду открытое наследование)
Короче судя по всему нет специального слова, так что расходимся)
0
zss
Модератор
Эксперт С++
8613 / 7569 / 4679
Регистрация: 18.12.2011
Сообщений: 20,091
Завершенные тесты: 1
05.02.2019, 17:23 9
Что-то Вы сделали из мухи слона
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class A
{
   private:
      int a;
};
 
class B : public A
{
   public:
      int b;
   void  f()
   {
       a=0; // не получится
   }
};
int main()
{ 
   B b;
   b.a=0;  // не получится
}
0
05.02.2019, 17:23
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.02.2019, 17:23

Как сложить объект базового класса с объектом производного(наследуемого класса)
Как умножить объект базового класса с объектом производного(наследуемого класса): ozenka - объект...

Создание указателя типа базового класса на экземпляр производного класса
Добрый день! Иногда видел коды, где создавался указатель типа базового класса на объект класса -...

Указатель на объект базового класса и адрес объекта производного класса
Пример кода: class Class1 { public: Class1(int x) { j = new int; *j = x; }...


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

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

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