Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 01.12.2016
Сообщений: 17
1

Наследование классов

07.04.2017, 08:37. Просмотров 2239. Ответов 4
Метки нет (Все метки)

к примеру ,
запись наследования класса
class tria : public shape
имеем доступ к public и protected базового класс.
а как работают эти записи ?
class tria : private shape
class tria : protected shape

Я запутался.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.04.2017, 08:37
Ответы с готовыми решениями:

Автоматическая генерация классов С ++ с UML диаграмм классов. Наследование в с++. Абстрактные классы. WhiteStarUML
Создать классовую модель(желательно в WhiteStarUML), которая включает в себя абстрактный класс...

Заменить наследование классов на наследование интерфейсов
#include <iostream> #include <assert.h> using namespace std; int people_on_base = 100; int...

Наследование классов. Копирование производных классов
Здравствуйте всем, у меня такой вопрос: написал код #include "stdafx.h" class A //Создаем...

наследование классов
Народ, всем приветик! Уже 3 день сижу над етой темой, не получается задание, вчера выбрасывал на...

4
с++
1196 / 482 / 211
Регистрация: 15.07.2015
Сообщений: 2,402
07.04.2017, 08:49 2
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <iostream>
using namespace std;
 
class FirstClass    // базовый класс
{
protected:          // спецификатор доступа к элементу value
    int value;
public:
    FirstClass()
    {
        value = 0;
    }
 
    FirstClass( int input )
    {
        value = input;
    }
 
    void show_value()
    {
        cout << value << endl;
    }
};
 
class SecondClass : public FirstClass   // производный класс
{
public:
    SecondClass() : FirstClass ()   // конструктор класса SecondClass вызывает конструктор класса FirstClass
    {}
 
    SecondClass(int inputS) : FirstClass (inputS)   // inputS передается в конструктор с параметром класса FirstClass
    {}
 
    void ValueSqr () // возводит value в квадрат. Без спецификатора доступа protected эта функция не могла бы изменить значение value
    {
        value *= value;    
    }  
};
 
int main()
{
    setlocale(LC_ALL, "rus");
 
    FirstClass F_object(3);     // объект базового класса
    cout << "value F_object = ";
    F_object.show_value();
 
    SecondClass S_object(4);    // объект производного класса
    cout << "value S_object = ";
    S_object.show_value();  // вызов метода базового класса
 
    S_object.ValueSqr();        // возводим value в квадрат
    cout << "квадрат value S_object = ";
    S_object.show_value();
 
    //F_object.ValueSqr();      // базовый класс не имеет доступа к методам производного класса
 
    cout << endl;
    return 0;
}
1
98 / 71 / 13
Регистрация: 15.12.2013
Сообщений: 454
07.04.2017, 09:26 3
Лучший ответ Сообщение было отмечено Решительный как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// Derived наследует Base и все public члены класса Base становятся public членами Derived
// Все protected члены класса Base становятся protected членами класса Derived
// К private членам класса Base класс Derived не имеет доступа
class Derived : public Base
{
};
 
// Derived наследует Base и все public члены класса Base становятся protected членами Derived
// Все protected члены класса Base становятся protected членами класса Derived
// К private членам класса Base класс Derived не имеет доступа
class Derived : protected Base
{
};
 
// Derived наследует Base и все public члены класса Base становятся private членами Derived
// Все protected члены класса Base становятся private членами класса Derived
// К private членам класса Base класс Derived не имеет доступа
class Derived : private Base
{
};
1
0 / 0 / 0
Регистрация: 01.12.2016
Сообщений: 17
07.04.2017, 13:20  [ТС] 4
Спасибо ! Вот теперь все понятно
0
Форумчанин
Эксперт CЭксперт С++
8160 / 5008 / 1436
Регистрация: 29.11.2010
Сообщений: 13,458
07.04.2017, 14:03 5
Рекомендую прочитать соответствующие правила у Майерса (Эффективное использование С++: 55 верных советов..., Глава 6, правила 32, 34, 38, 39)

http://alenacpp.blogspot.ru/20... st_11.html
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.04.2017, 14:03

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Наследование классов
Задание: Создать класс базовый класс «квадрат». Элементы класса (поля имеют статус доступа...

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

Наследование классов
я решил по примеру одной задачи свою, но там много ошибок, может ктото сможет поправить их. ...

Наследование классов
Есть базовый класс: class people { public: char *name; }; Есть производный класс, который...


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

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

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