проблема с прогой

Вопросы программирования, чего ж еще :)

Модератор: Злобный

Закрыто
Аватара пользователя
Фенрир Локиевич
Продвинутый
Сообщения: 481
Зарегистрирован: Пт окт 20, 2006 18:07
Контактная информация:

проблема с прогой

Сообщение Фенрир Локиевич » Ср дек 17, 2008 20:50

Код: Выделить всё

//---------------------------------------------------------------------------

#pragma hdrstop
#include <iostream.h>
#include <string.h>

class member {
    static member* last_memb;
    member* prev;
    member* next;
    char* word;
    public:
    member (char* word)
    {
    strcpy(this->word, word);
    }
    void add();
    static void reprint();
};
void member:: add()
{
if (last_memb==NULL)
    this->prev=NULL;
else { this->prev=last_memb;
       last_memb->next=this;
}
last_memb=this; this->next=NULL;
}

void member :: reprint(){
member*  p;
p=last_memb;
if(!p)
     {
    cout<<"\nThe list is empty\n";
     return;
     }
else cout<<"List:\n";
    while(p)
    {
    cout<<p->word<<"\t";
    p=p->prev;
    }
}

//---------------------------------------------------------------------------
 member* member::last_memb=NULL;
int main(int argc, char* argv[])
{
    member A("aaa");
    member B("bbb");
    member C("ccc");
    member D("ddd");
    member::reprint();
    A.add(); B.add(); C.add(); D.add();
     member::reprint();
     getchar();
   return 0;
}
//---------------------------------------------------------------------------


проблемы с прогой. При первом вызове member::reprint(); должна оповещать о пустоте списка;
при втором вызове должна выводить слова в списке. Однако не выводит ничего.

Аватара пользователя
Злобный
Завсегдатай
Сообщения: 2716
Зарегистрирован: Сб июн 18, 2005 21:05
Контактная информация:

Сообщение Злобный » Ср дек 17, 2008 21:47

а дебагером почему воспользоваться не хочешь?

Аватара пользователя
Молдафский Кавалерист
Завсегдатай
Сообщения: 2399
Зарегистрирован: Ср июн 25, 2008 22:25
Контактная информация:

Сообщение Молдафский Кавалерист » Ср дек 17, 2008 22:14

А разве в описании класса - "char* word" должен быть указателем?
Объявляешь "member (char* word)", а вызываешь 'member ("aaa")'. Tак можно?
Ты наверно "синяк", а выложил это просто так...

http://it.kgsu.ru/C_OOP/oop_0012.html

Аватара пользователя
Фенрир Локиевич
Продвинутый
Сообщения: 481
Зарегистрирован: Пт окт 20, 2006 18:07
Контактная информация:

Сообщение Фенрир Локиевич » Ср дек 17, 2008 22:29

и в правду..пить надо меньше спасибо за ссылку)))
тогда конструктор будет иметь вид:
member (char* word)
{ this->word=new char(strlen(word+1));
strcpy(this->word, word);
}
На этом прошу закрыть! Спасибо

Закрыто

Вернуться в «Программирование»