Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2018, 16:51   #1
rioto
 
Регистрация: 12.05.2018
Сообщений: 6
По умолчанию Есть идея не знаю как сделать

есть вот такой код
Код:
Set Set::operator * (const Set &b) 
{ 
Set per (size); // создания объекта класса per
per.size = size + b.size; // Определяем размер 
   array = new unsigned int[per.size]; //массив на размер
   int n=0;
   per= new unsigned int Set[n]; //здесь типа объявил в per массив размерность n и компилятор оболдевает от моего тупизма и ругается на n
    unsigned int i, j; 
    for ( i = 0; i < size; i++) 
        for ( j = 0; j < b.size; j++) 
        { 
            if(size.array[i] == b.array[j]) //а здесь говорю типа ты мне элементы множества сравни с элементами множествами b но компилятор злюка ругается на size array
            {
                per.[n++] = array[i]; // а здесь я компилятору объясняю если элементы одинаковые там и там занеси мне их в массив 
                continue;
            } 
        } 
        
        return per ;
}
Вот такая вакханалия происходит. Помогите разобраться с кодом.
А изначально код был таким но была необходима перегрузка
Код:
void Set::intersection(Set a, Set b) 
{  
    size = a.size + b.size; 
    array = new unsigned int[size]; 
    unsigned int i, j, n = 0; 
 
    for ( i = 0; i < a.size; i++) 
        for ( j = 0; j < b.size; j++) 
        { 
            if(a.array[i] == b.array[j]) 
            {
                array[n++] = a.array[i]; 
                continue;
            } 
        } 
        size = n;
}
Ну и вот для перегрузки заполняю я array потом создаю новый в per размером n и туда копирую a array удаляю . Ну вот тут то проблемы и
начались .
И вот код для показа результата
Код:
void Set::Show() 
{ 
    std::cout << "множество" << std::endl; 
    for ( unsigned int i = 0; i < size; i++) 
        std::cout << array[i] << " "; 
    std::cout << std::endl;
}
rioto вне форума Ответить с цитированием
Старый 14.05.2018, 17:03   #2
rioto
 
Регистрация: 12.05.2018
Сообщений: 6
По умолчанию

Была идея и такая
Код:
Set Set::operator * (const Set &b) 
{  
Set pes(size);
pes.size = size + b.size; 
   array = new unsigned int[pes.size]; 
    unsigned int i, j, n = 0; 
    for ( i = 0; i < size; i++) 
        for ( j = 0; j < b.size; j++) 
        { 
            if(size.array[i] == b.array[j]) 
            {
                array[n++] = size.array[i]; 
                continue;
            } 
        } 
        
        return pes.size=n ;
}
но компилятор ругается на size.array[i]
rioto вне форума Ответить с цитированием
Старый 14.05.2018, 17:06   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

Какая уже тема? Пятая?

Цитата:
Сообщение от rioto Посмотреть сообщение
Вот такая вакханалия происходит. Помогите разобраться с кодом.
Именно, что вакханалия, причем с самого начала.
Код:
Set per (size); // создания объекта класса per
per.size = size + b.size; // Определяем размер
Зачем создавать объект, если его размер еще не подсчитан?
Зачем считать отдельной строкой?

Код:
   array = new unsigned int[per.size]; //массив на размер
   int n=0;
   per= new unsigned int Set[n]; //здесь типа объявил в per массив размерность n и компилятор оболдевает от моего тупизма и ругается на n
Зачем вы создавали новый объект, если портите старый?
Какой смысл создавать массив длины 0? Да еще и специально заводить переменную для хранения этого 0?
Там не в n проблема... что за тип "unsigned int Set"?

Цитата:
Сообщение от rioto Посмотреть сообщение
А изначально код был таким но была необходима перегрузка
И зачем вы код покорежили? Вам всего лишь надо было добавить обращения к полям, типа вместо size написать NewSet.size...

Цитата:
Сообщение от rioto Посмотреть сообщение
но компилятор ругается на size.array[i]
А вы бы не ругались? Что такое size? Число. Откуда у него поля взялись? Что вы употребили и не отсыпали компилятору?
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сделать видеочат на сайте. Хочу сделать но не знаю как.. Shaman-King Свободное общение 12 14.01.2013 00:22
Пишу графический редактор в Delphi7. Появилась одна идея, не знаю как реализовать... shevel97 Помощь студентам 1 19.02.2011 23:52
У меня есть идея!(незнаю как воплотить) johnifer PHP 1 24.11.2010 15:14
Есть идея, но не знаю, как сделать. Небесный Свободное общение 22 01.04.2007 18:07