метод класс List

221
26 июня 2018, 23:40

написал функцию которая сравнивает параметры одного листа с параметрами другого но так как стоит void List::poisk(Kvartira& kvartira, KvartiraI& kvartirai) ,то из двух Kvartira *temp = head; KvartiraI *tempi = headi; работает только та, которая находится в описании моего первого класса List, как сделать чтобы KvartiraI *tempi = headi; которая находится в моём 2-ом классе ListI тоже работала. НЕ ЗНАЮ КАК ОБЪЯВИТЬ ИДЕНТИФИКАТОР

САМ КОД ФУНКЦИИ:

class List
{
    Kvartira *head;
public:
    List() : head(NULL) {};
    ~List();
    void Add(Kvartira &kvartira);
    void Show(Kvartira &kvartira);
    void poisk(Kvartira &kvartira,KvartiraI &kvartirai);
};
List::~List()
{
    while(head!=NULL)
    {
        Kvartira *temp = head->Next;
        delete head;
        head = temp;
    }
}

class ListI
{
    KvartiraI *headi;
public:
    ListI() : headi(NULL) {};
    ~ListI();
    void AddI(KvartiraI &kvartirai);
    void ShowI(KvartiraI &kvartirai);
    void poisk(Kvartira &kvartira,KvartiraI &kvartirai);
};
ListI::~ListI()
{
    while(headi!=NULL)
    {
        KvartiraI *tempi = headi->Nexti;
        delete headi;
        headi = tempi;
    }
}
void List::poisk(Kvartira& kvartira, KvartiraI& kvartirai)
{
    ListI lsti;
    Kvartira *temp = head;
    KvartiraI *tempi = headi;
    while(temp!= NULL){
        int s = 0;
        while(tempi!=NULL){
            if (    temp->kolvokom==tempi->kolvokom2
                &&  temp->itash==tempi->itash2
                &&  (
                    temp->plosh==tempi->plosh2 
                ||  temp->plosh*1.1==tempi->plosh2*1.1 
                ||  temp->plosh-tempi->plosh2<=temp->plosh*0.1 
                ||  temp->plosh-tempi->plosh2>=temp->plosh*0.1 
                ||  tempi->plosh2-temp->plosh<=tempi->plosh2*0.1
                ||  tempi->plosh2-temp->plosh>=tempi->plosh2*0.1)
                )
                tempi = tempi->Nexti;
                temp = temp->Next;
            {
                cout<<temp->raion<<" "<<temp->kolvokom<<" "<<temp->plosh<<" "<<temp->itash;
                cout<<tempi->raion2<<" "<<tempi->kolvokom2<<" "<<tempi->plosh2<<" "<<tempi->itash2;
                s = 1;
                break;
            }
        }
        if (s == 1)
            break;
    }
}
READ ALSO
Как найти словосочетание в строке и занести его в другую строчную переменную?

Как найти словосочетание в строке и занести его в другую строчную переменную?

В переменную s из файла считываются строкиКак из этих строк извлечь и записать в другую строчную переменную ,например, все словосочетания,...

192
Подходящий конструктор копирования

Подходящий конструктор копирования

Есть класс Son который наследует класс CARD, который в свою очередь наследует класс MARSHКогда я пишу к примеру cout << (Son)So; Пишет что нет подходящего...

218
Преобразование String в Integer C++

Преобразование String в Integer C++

Читал другие темы с этим вопросом, но у меня не получается перевестиПрограмма работает, но вот выводит неправильно

348
Перебор всех возможных сумм массива с++

Перебор всех возможных сумм массива с++

Помогите с алгоритмом для программы

207