Класс Set(множество целых чисел). Оператор += для множества и значений

По заданию необходимо разработать класс Set(множество целых чисел), позволяющие использовать их в следующей программе:
Set set1(c1), set2(c1,c2), set3=set2; set1+=c1; set1+=set2; set3=set1; cout<<set3;

Проблемы вызывает оператор +=. Самостоятельно пробовал его прописать для объединения двух множеств следующим образом:

bool Set::checkContain(const int& n)
{
    for (int i = 0; i < size; i++)
        if (p[i] == n) return true;
    return false;
}

Set& Set::operator += (const Set& s)
{
    if (checkContain(s)) return *this;
    size++;
    p[size] = s;
}

checkContain необходим для проверки наличия элемента в множестве. При попытке прописать выдаёт ошибки: не существует подходящей функции преобразования из "const Set" в "const int" на строке if (checkContain(s)) return *this; и не существует подходящей функции преобразования из "const Set" в "int" на строке p[size] = s;

Прошу указать на проблему и, если можно, помочь с такой же задачей для добавления оператором += элемента во множества


Ответы (0 шт):