0

во время компиляции возникла ошибка, буду рад ответу.

Файл Header.h

#pragma once
template <class T>
class set
 {
  private:
   T* a;
   int max_size;
   int size;
public:
//Конструкторы:
set(int maxim);
set(set <T>& x);

//Деструктор:
~set();

void add(T x);//добавление эл-та в мнохество
void del(T x);//удаление эл-та из множества
bool check_in(T x);//проверка вхождения эл-та в множество
};

Файл Source

#include "Header.h"
#include <iostream>
#include <conio.h>
#include <string>
#include <stdio.h>
using namespace std;

 void menu();

 int main()
{
setlocale(LC_ALL, "Russian");
cout << ("Добро пожаловать в программу!") << endl;
menu();
}


void menu()
 {
  int n;
  int choose;
  int max;
  cout << ("Введите максимальный размер множества-");
  cin >> max;
  set <int> set1(max);
  set <int> set2(max);


int x;
do {
    cout << '\n'
        << " ------------Menu------------ "
        << '\n' << ("1. Добавление эл-та в множество")
        << '\n' << ("2. Удаление эл-та из множества")
        << '\n' << ("3. Проверка вхождения эл-та в множество")
        << '\n' << ("0. Выход")
        << '\n' << "<";
    cin >> n;
    system("cls");
    switch (n)
    {

    case '1':cout << ("Выберете множество для добавления(1/2)");
        cin >> choose;
        cout << ("Введите э-т");
        cin >> x;
        if (choose == '1')
            set1.add(x);
        if (choose == '2')
            set2.add(x);
        break;
    case '2':cout << ("Выберете множество для удаления(1/2)");
        cin >> choose;
        cout << ("Введите величину эл-та");
        cin >> x;
        if (choose == '1')
            set1.del(x);

        if (choose == '2')
            set2.del(x);
        break;
    case '3':cout << ("Выберете множество для проверки(1/2)");
        cin >> choose;
        cout << ("Введите величину эл-та");
        cin >> x;
        if (choose == '1')
        {
            if (set1.check_in(x))
                cout << ("Элемент содержится в данном множестве");
            else
                cout << ("Элемент не содержится в данном множестве");
        }
        if (choose == '2')
        {
            if (set2.check_in(x))
                cout << ("Элемент содержится в данном множестве");
            else
                cout << ("Элемент не содержится в данном множестве");
        }
        break;
    case '0':return;
    default:cout << ("Действие не выбрано");
    }
} while (true);
}

template <class T>
void set<T> ::add(T x)
 {
  if (size < max_size)
   {
    if (!check_in(x))
    {
        a[size] = x;
        size += 1;
        cout << ("Добавление прошло успешно");
    }
    else
        cout << ("Добавление невозможно");
}
else
    cout << ("Добавление невозможно");
}


template <class T>
void set <T>::del(T x)
 {
 bool ok;
 ok = false;
 if (size != 0)
 {
    for (int i = 0;i < size;i++)
    {
        if (a[i] == x)
        {
            for (int j = i;j < size;j++)
            {
                a[j] = a[j + 1];
            }
            size -= 1;
            ok = true;;
        }

    }
    if (ok)
        cout << ("Удаление прошло успешно");
}
else
    cout << ("Удаление невозможно");


template <class T>
bool set <T>::check_in(T x)
{
for (int i = 0;i < size;i++)
    if (a[i] == x)
        return true;
return false;
}

И сама ошибка на фото:введите сюда описание изображения

  • очевидно, что некоторые методы, например деструктор, не реализованы. и пишите шаблоны в заголовочном файле – user7860670 Mar 10 '20 at 21:57
  • А можно как-то по подробней, так как я не очень силен в ООП – Жека Миксик Mar 10 '20 at 22:00

0 Answers0