функция-член класса не вернется

У меня есть следующий код:

void module_books::show_item(int n, TABLE<BOOK> b) {
cout<<"Title:         "<<b[n]->title<<"\n";
cout<<"Author:        "<<b[n]->author<<"\n";
cout<<"Issue:         "<<"no. "<<b[n]->issueno<<". "<<b[n]->city<<", "<<b[n]->publisher<<", "<<b[n]->year<<"\n";
cout<<"ISBN:          "<<b[n]->isbn<<"\n";
cout<<"Pages count:   "<<b[n]->pages<<"\n";
cout<<"Information:   Loan count: "<<b[n]->outcount<<". ";
if(b[n]->damaged) cout<<"DAMAGED ";
if(b[n]->out) cout<<"LOANED";
cout<<"\n\n";
}

int module_books::add_item(TABLE<BOOK> &b) {

int _year, _issueno, _pages;
bool _damaged=false;
string _title, _author, _isbn, _publisher, _city, stmp;

cout<<"You're adding new book to the list.\nFill in the following fields:\n\n";
cout<<"Title:               "; getline(cin,_title);
cout<<"Author:              "; getline(cin,_author);
cout<<"Issue no:            "; cin>>_issueno; cin.ignore(std::numeric_limits<std::streamsize>::max(), L'\n');
cout<<"Issued in (city):    "; getline(cin,_city);
cout<<"Issuer:              "; getline(cin,_publisher);
cout<<"Issued in (year):    "; cin>>_year; cin.ignore(std::numeric_limits<std::streamsize>::max(), L'\n');
cout<<"ISBN:                "; getline(cin,_isbn);
cout<<"Pages count:         "; cin>>_pages;
cout<<"Is damaged? (y/n):   "; cin>>stmp; cin.ignore(std::numeric_limits<std::streamsize>::max(), L'\n');
if(stmp=="y" || stmp=="yes" || stmp=="Y" || stmp=="Yes" || stmp=="YES") _damaged=true;

int n=b.size();

b.push_back(BOOK(_title,_author,_publisher,_city,_isbn,_year,_issueno,_pages,_damaged));

cout<<"\nThe book has been added:\n\n";
show_item(n,b);
cout<<"\nreturning\n";
return n;
}

BOOK — это просто структура с некоторыми переменными-членами. TABLE — это шаблон структуры, который работает как вектор STL (я просто не могу использовать вектор, поэтому мне пришлось написать собственный шаблон, в данный момент он использует статический массив T ar[100]).

Проблема в том, что я получаю сообщение о том, что книга была добавлена, и функция show_item печатает все данные, но я не получаю «возвращающегося» сообщения.

Я пытался установить точки останова, чтобы show_table функция доходит до конца }, но программа никогда не доходит до «возвращающегося» сообщения.

Что может быть не так с этим кодом? Я использую 32-битный QTCreator с MinGW. Моя ОС — 64-битная Win8.1, если это поможет …

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]