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

Шаблонная функция в агрегированном классе

18.02.2019, 16:40. Просмотров 230. Ответов 0
Метки нет (Все метки)


Подскажите как использовать шаблонную функцию void add_arr(T* &ar, int& n, T val) в агрегированном классе?
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <iomanip>
#include <Windows.h>
using namespace std;
class Predmet
{
    char npred[20];
    int* mark;
    int col_pr;
public:
    Predmet()
    {
        npred[20] = {};
        mark = 0;
        col_pr = 0;
    }
    void set_npred(char *N)
    {
        strcpy(npred, N);
    }
    char* get_npred()
    {
        return npred;
    }
    void set_mark()
    {
        mark = new int[0];
    }
    int* get_mark()
    {
        return mark;
    }
    int &set_co_vo(int c)
    {
        col_pr = c;
    }
    int get_co_vo()
    {
        return col_pr;
    }
};
template <class T>
void add_arr(T* &ar, int& n, T val) //T* ar = a; int& n = n; T val = vv;
{
    T* temp = new T[++n];
    for (int i = 0; i < n; i++)
        temp[i] = i <n - 1 ? ar[i] : val;
    delete[]ar;
    ar = temp;
}
class Student 
{
public:
    char name[20];
    Predmet *P;
    
    Student()
    {
        name[20] = {};
 
        P =NULL;
    }
    void instal(Student& s, char*n, char* np[], int m)
    {
        P = new Predmet[3];
        strcpy(s.name, n);
        int j = 0;
        for (int i = 0; i < 3; i++)
        {
            P[i].set_co_vo(0);
            P[i].set_mark();
            s.P[i].set_npred(np[j++]);
            for (int i = 0; i < m; i++)
                add_arr(P[i].set_mark(), P[i].set_co_vo(0), rand() % 5 + 1); // здесь ошибка не пойму как исправить
        }
    }
 
    void show(Student *&s, int n) //создаем функцию, которая принимает структуру, как параметр
    {
        for (int i = 0; i < n; i++)
        {
            cout << setw(3) << s[i].name << setw(3) << endl;
            for (int j = 0; j < 3; j++)
            {
                cout << setw(3) << "Предмет  " << setw(3) << s[i].P[j].npred << " " << setw(3) << endl;
                cout << setw(3) << "Оценка" << '\t';
                for (int r = 0; r < col_pr; r++)
                {
                    cout << mark[r] << ' ';
                    cout << endl;
                }
                cout << endl;
            }
        }
    }
};
void main()
{
    setlocale(0, "Ru");
    srand(NULL());
    int n = 3;
    char name[3][20] = { "Сидоров", "Петров", "Иванов" };
    Student * group = new Student[n];
    Student ob;
    char* p[3] = { "Математика", "История", "Физика" };
    for (int i = 0; i < n; i++)
        ob.instal(group[i], name[i], p, 3);
    ob.show(group, 3);
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.02.2019, 16:40
Ответы с готовыми решениями:

Шаблонная функция в классе, непонятная ошибка
Доброго времени суток! Добавил шаблонную функцию как friend в класс. В итоге выдает ошибку ...

Шаблонная функция в простом классе и ошибка "Ссылка на неразрешенный внешний символ"
файл: A.h class A { public: template&lt;class T&gt; T func(T); }; файл: A.cpp

Шаблонная функция С++
Помогите пожалуйсто понять ошибку Используется шаблонная функция в первом вызове она отображает...

Шаблонная функция
Помогите понять почему когда вызываешь функцию уже для конкретного типа (int,char*,double и...

__________________
Помогаю в написании студенческих работ здесь.
Записывайтесь на профессиональные курсы C++ разработчиков
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.02.2019, 16:40

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

Шаблонная функция
Необходимо сделать шаблонную функцию, в которой x заменяется на y, а y заменяется на x: void...

Шаблонная функция
Как &quot;научить&quot; шаблонную функцию отличать массив от контейнера, то есть если написать: template...

Шаблонная функция
Учу c++, в книге приводится вот такой листинг примера работы шаблонной функции, однако он не...

Шаблонная функция
Дорогие форумчане, нуждаюсь в вашей помощи: имеется несколько функций, с большим объемом кода....


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

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

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