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

Классы student и prepod поместить в один массив - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нужно создать массив строк и найти слова http://www.cyberforum.ru/cpp-beginners/thread1115039.html
Нужно создать массив строк, строки состоят из символов. Вывести только русские слова, где гласных символов больше. Массив сделать динамическим. А поиск слов через функцию. Ввод строк через аргументы командной строки... Помогите пожалуйста, а то мне программирование не сильно даётся!
C++ Пользователь вводит с командной строки текст, найти в нём английские слова Пользователь вводит с командной строки текст, найти в нём английские слова! http://www.cyberforum.ru/cpp-beginners/thread1115025.html
C++ Описать структуру с именем STUDENT
Пожалуйста помогите! Описать структуру с именем STUDENT, содержащую следующие поля: • NAME - фамилия и инициалы; • GROUP - номер группы; • SES - оценки по пяти предметам (массив из пяти элементов). Написать программу, реализующую следующие действия отдельными функциями: • ввод с клавиатуры данных в массив STUD, состоящий из N переменных типа STUDENT; • упорядочение записей по возрастанию...
Дан целочисленный двумерный массив. Известно, что среди его элементов два и только два равны между собой. Напечатать их индексы C++
Часть программы выполнена, но не получается поставить верное условие для сравнения элементов в массиве (уточнение: использовать можно только два цикла, т.е. нельзя подключить вспомогательный массив). Исправьте, пожалуйста, где неправильно. Вот мой нерабочий фрагмент: for (i=1; i<=m; i++) { for (j=1; j<=n; j++) { if (a==a) { ...
C++ GPGPU http://www.cyberforum.ru/cpp-beginners/thread1114990.html
Подскажите какую из существующих вариантов реализации стоит изучать? Мне нужны только сложение, вычитание, умножение и (к сожалению) условия. Кстати, будет ли прирост скорости и значительный ли при расчётах на GPU, если вместо условных переходов использовать что-то такое: вместо if(x<0)x*=(-1); это
C++ Функция в строке Подскажите пожалуйста функцию которая проверяет является ли символ гласной буквой. подробнее

Показать сообщение отдельно
vlad3996
6 / 6 / 3
Регистрация: 27.10.2013
Сообщений: 14

Классы student и prepod поместить в один массив - C++

09.03.2014, 23:24. Просмотров 202. Ответов 0
Метки (Все метки)

Имеются наследники класса person : student и prepod.
Нужно создать массив, в котором будут храниться объекты этих классов и вывести на экран, например, только студентов.

Не знаю как именно создать массив, чтобы при помощи typeid обращаться к нужным элементам
Без массива всё работает...Вот код.
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <iostream>
using namespace std;
class person
{
    char *name;
public:
    person() { name=new char [255];}
    ~person() { delete []name;}
    void setName();
    char *showName() {return name;}
    friend istream& operator >>(istream &in, const person &pers);
    friend ostream &operator<<(ostream &out, const person &pers);
};
class student:virtual public person
{
    int kurs;
    int group;
public:
    student():kurs(0), group(0) {}
    void setkurs(int kur) {kurs=kur;}
    void setgroup(int gr) {group=gr;}
    void setStud() {cout<<"Введите курс и группу"<<endl; cin>>kurs>>group;}
    friend ostream & operator<<(ostream &out, student &stud);
    friend istream& operator >>(istream &in,student &stud);
};
class prepod:virtual public person
{
    char * kaf;
public:
    prepod(){ kaf=new char [255];}
    ~prepod() { delete []kaf;}
    friend ostream& operator<<(ostream& out,prepod& prep);
    friend istream& operator >>(istream &in,prepod& prep);
};
//person методы
void person::setName()
{
    cout<<"Введите имя"<<endl;
    cin.getline(name,255);
}
istream& operator >>(istream &in, const person &pers)
{
    cout<<"Введите имя, фамилию"<<endl;
    in.getline(pers.name,255);
    return in;
}
ostream &operator<<(ostream &out, const person &pers)
    {
        out<<"Имя: "<<pers.name<<endl;
        return out;
    }
//student методы
ostream & operator<<(ostream &out, student &stud)
{
    out<<"Имя:  "<<stud.showName()<<endl<<"Курс:    "<<stud.kurs<<endl<<"Группа:    "<<stud.group<<endl;
    return out;
}
istream& operator >>(istream &in,student &stud)
    {
        stud.setName();
        cout<<"Введите курс"<<endl;
        int kurs,group;
        in>>kurs;
        cout<<"Введите группу"<<endl;
        in>>group;
        stud.setgroup(group);
        stud.setkurs(kurs);
        return in;
    }
//prepod методы
ostream& operator<<(ostream& out,prepod& prep)
{
    out<<"Имя:  "<<prep.showName()<<endl<<"Кафедра:"<<prep.kaf<<endl;
    return out;
}
istream& operator >>(istream &in,prepod& prep)
{
    prep.setName();
    cout<<"Введите кафедру"<<endl;
    in>>prep.kaf;
    return in;
}
//
 
 
class common:public student, public prepod
{
public:
    //быть может ещё 1 класс нужен?
};
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru