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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2012, 19:43   #1
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 301
По умолчанию Наследование.Классы

Почему то код в 500 строк не влазиет,помогите допилить
Закинул сюда(не реклама) pastecode.ru/0dfa/

Нужно допилить конструктор копирования(Для обоих классов)
Операции = перегрузка(так же для обоих)
И нужен ли деструктор в в производном классе?

Да и так какие ошибки если найдете,может подскажите)...
a.n.o.n.i.m вне форума Ответить с цитированием
Старый 10.11.2012, 20:17   #2
Axrik
Форумчанин
 
Аватар для Axrik
 
Регистрация: 17.12.2011
Сообщений: 111
По умолчанию

Конструктор, перегрузку и поиск ошибок вы, пожалуй, сами "допиливайте", а вот на вопрос отвечу

Деструктор базового класса не является деструктором производного класса.
Т.е. в производном классе нужен деструктор.
При вызове деструкторов в абстрактном классе сперва нужно вызывать деструктор производного, а затем базового класса.
Axrik вне форума Ответить с цитированием
Старый 10.11.2012, 21:11   #3
sVasilich
Форумчанин
 
Аватар для sVasilich
 
Регистрация: 16.12.2009
Сообщений: 224
По умолчанию

В базовом классе деструктор должен быть виртуальным. В производном - обычным (если от производного не планируется наследовать в дальнейшем).

Вообще, в такой структуре лучше использовать композицию, а не наследование.
Люди бывают 10 типов: те, кто понимают двоичную систему счисления, и те, кто не понимают...
sVasilich вне форума Ответить с цитированием
Старый 11.11.2012, 09:23   #4
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 301
По умолчанию

Пасиб ,хоть что то

Еще вопрос,почему когда добавляю из первой базы во вторую элементы ,и последним элементом добавляю во 2 базу первый из базы 1,А затем хочу обратно из базы 2 засунуть в базу 1 они тупо пропадают при добавлении в первую базу,как поправить?

Код:
int NaMarshrut::dell(int emp_nomer)//На маршрут. Из базы 1 в 2
{
    nomer = emp_nomer;
    Element* q = start;
    pbeg = start;
    Element* temps;
    temps = new Element;
    if(start)
    {
        bool flag;
        Element* flags = start;
        while(flags)
        {
            if(flags->n_bus == nomer)//Сравнение введнного значения с первым элементом списка
            {
                flag = true; 
                break;
            }
            else 
                flag = false;
            flags = flags->next;
        }
        if(flag)//Если мы нашли совпадение номеров,то....
        {
            while(q)//Пока не перебрали весь список(!=NULL)
            {
                if(nomer == start->n_bus)//Если номер равен 1му
                {
                    Element* tem = start;
                    start = start->next;
                    strcpy(temps->name,tem->name);
                    temps->n_bus = tem->n_bus;
                    temps->n_mar = tem->n_mar;
                    delete tem;
                    break;
                }
                else
                {
                    Element* p = q->next;//Берем элемент +1
                    if(p)
                    {
                        if(p->n_bus == nomer)
                        {
                            Element* gh = p->next;
                            q->next = gh;
                            strcpy(temps->name,p->name);
                            temps->n_bus = p->n_bus;
                            temps->n_mar = p->n_mar;
                            delete p;
                            break;
                        }
                    }
                    else//Если следующий NULL ,тоест последниий был
                    {
                        strcpy(temps->name,p->name);
                        temps->n_bus = p->n_bus;
                        temps->n_mar = p->n_mar;
                        delete q;
                        break;
                    }
                }
                q = q->next;
            }
        }
        else
        {
            system("cls");
            cout<<"Такого автобуса нет в ГАРАЖЕ\n\n";
            _getch();
            return 0;
        }
    }
    else 
    {
        cout<<"Гараж пуст!"<<endl;
        _getch();
        return 0;
    }
    if(starts)
    {
        Element* mar = temps;
        mar->next = pbegs->next;
        pbegs->next = mar;
        pbegs = mar;
        return 0;
    }
    else
    {
        pbegs = temps;
        pbegs->next = 0;
        starts = pbegs;
        return 0;
    }
}

Последний раз редактировалось Stilet; 11.11.2012 в 13:31.
a.n.o.n.i.m вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Наследование классы Rusl92 PHP 1 28.06.2011 00:18
Наследование (классы) Rusl92 Помощь студентам 3 31.10.2010 20:31
C++ Классы (Наследование) werser Помощь студентам 3 15.12.2009 21:30
Классы и наследование. Scratch Общие вопросы C/C++ 9 27.09.2008 16:03