Я не могу понять, почему я получаю значения мусора ... Я не знаю, как заставить это дать мне значения, которые я установил, не разделяя функцию setdetails.Вектор дает значения мусора
Я не совсем уверен, что проблема связана с циклом или с использованием метода set, я пробовал играть почти с каждой частью кода, но все же я получаю точные точные значения мусора ... Думаю, я не хватает некоторые вещи из
class Book
{
int isbn;
int price;
public:
Book();
Book(int isbn,int price){
isbn =0;
price = 0;
}
void setDetails(int isbn,int price){
this->isbn = isbn;
this->price = price;
}
int getDetails()const{
return isbn;
return price;
}};
void fillvector(vector<Book>& mybook){
cout <<"how many books do you want to add ?"<<endl;
int loop;
int Isbn;
int Price;
cin>> loop;
for (int i=0; i < loop; i++){
cout<<"ISBN : ";
cin>> Isbn;
cout<<endl;
cout<<"price : ";
cin >>Price;
Book newbook(Isbn,Price);
mybook.push_back(newbook);
}
}
void printvector(vector<Book>& mybook) {
int size = mybook.size();
for (int i = 1; i <size; i++){
cout<< "ISBN : "<< mybook[i].getDetails()<<endl;
}
}
main(){
vector<Book> mybook;
fillvector(mybook);
printvector(mybook);
return 0;
}
Обратите внимание, что ваш второй 'возврат' в' getDetails' никогда не достигается. – Jarod42
Я считаю, что вы не выделили память для экземпляров книги ... Попробуйте использовать ключевое слово 'new' ... – TheDillo
@ TheDillo, память распределяется соответствующим образом на' Book newbook (Isbn, Price); ' – chris