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

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

10.01.2018, 17:45. Просмотров 827. Ответов 5
Метки нет (Все метки)

Как передать числа из класса massiv, которые случайным образом создаются в этом классе, в класс chetn для вывода четных чисел ?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class massiv
{
    protected:
        int N,i;
        int A[20];
    public:
    void out(void);
};
 
void massiv::out(void)
{   setlocale(0,"Russian");
    cout<<"введите N: "<<endl;
cin>>N;
    srand(time(NULL));
    for ( i = 0; i < N; i++)
    {
        A[i] = rand()%20-10; 
        cout << A[i] << "\t";
    }
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class chetn: public mass
{
    public:
    void out(void);
};
 
void chetn::out(void)
{
    for ( i = 0; i < N; i++)
    {
    if(A[i]%2==0)
    cout<<"четные "<<A[i]<< "\t";
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.01.2018, 17:45
Ответы с готовыми решениями:

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

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

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

Наследование классов
Доброго времени суток. Обращаюсь за помощью к Вам. Язык С++ стал изучать недавно и столкнулся вот с...

5
зомбяк
1417 / 1081 / 310
Регистрация: 14.05.2017
Сообщений: 3,538
10.01.2018, 18:00 2
Цитата Сообщение от MaKN Посмотреть сообщение
class chetn: public mass
Что такое mass?

Добавлено через 3 минуты
Если mass никак не связан с massiv, то объявить в massiv
C++
1
friend class chetn;
(с объявлением прототипа класса chetn перед class massiv)

И тогда можно будет сделать функцию
C++
1
2
3
4
5
6
7
8
void chetn::out(const massiv &m)
{
    for ( i = 0; i < N; i++)
    {
        if(m.A[i]%2==0)
            cout<<"четные "<<m.A[i]<< "\t";
    }
}
0
1 / 1 / 0
Регистрация: 16.12.2013
Сообщений: 54
10.01.2018, 19:37  [ТС] 3
Спасибо.
при использовании friend class chetn; результат также не выводится

Цитата Сообщение от TRam_ Посмотреть сообщение
Что такое mass?
Цитата Сообщение от TRam_ Посмотреть сообщение
Если mass никак не связан с massiv, то объявить в massiv
связан, должно быть так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class chetn: public massiv
{
    public:
    void out(void);
};
 
void chetn::out(void)
{
    for ( i = 0; i < N; i++)
    {
    if(A[i]%2==0)
    cout<<"четные "<<A[i]<< "\t";
    }
}
0
зомбяк
1417 / 1081 / 310
Регистрация: 14.05.2017
Сообщений: 3,538
10.01.2018, 20:11 4
Лучший ответ Сообщение было отмечено MaKN как решение

Решение

Цитата Сообщение от MaKN Посмотреть сообщение
связан, должно быть так
Если так, то вызывай вот так:

C++
1
2
3
chetn ex0;
ex0.massiv::out();  // вызов void massiv::out(void)
ex0.out();  // void chetn::out(void)
Добавлено через 1 минуту
Или вот так:

C++
1
2
3
massiv ex0;
ex0.out();
static_cast<chetn *>(&ex0)->out();
1
1 / 1 / 0
Регистрация: 16.12.2013
Сообщений: 54
10.01.2018, 20:57  [ТС] 5
Спасибо. Работает.

У меня несколько классов-наследников, таких как chetn, можно как-то вызвать один из них случайным образом?
Цитата Сообщение от TRam_ Посмотреть сообщение
Если так, то вызывай вот так:
C++
chetn ex0;
ex0.massiv::out(); *// вызов void massiv::out(void)
ex0.out(); *// void chetn::out(void)
0
зомбяк
1417 / 1081 / 310
Регистрация: 14.05.2017
Сообщений: 3,538
10.01.2018, 22:39 6
Цитата Сообщение от MaKN Посмотреть сообщение
один из них случайным образом?
Сделай switch() для случайного значения. И потом для case 0, case 1 и т.д. указывай нужный вызов.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.01.2018, 22:39

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

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

Наследование Классов с++
при компицяции выдаёт Unresolved external 'chelovek::chelovek(int,int,int)' referenced from...

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

Наследование классов
Здравствуйте всем! Классы и наследования еще не изучил а задали решить задачу. Просьба может у...


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

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

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