2013-05-25 4 views
0

Привет Я пытаюсь читать данные в вектор объектов, но у меня возникают проблемы с этим. Я создал класс и вектор этого класса. При попытке чтения данных в вектор я получаю класс банковских выписок не имеют ни одного члена, а затем переменный я пытаться читать.Чтение ввода в векторные объекты

#include <iostream> 
#include<vector> 
#include <string> 

using namespace std; 

class Bank_Statement 
{ 
public: 
    Bank_Statement(); 
    Bank_Statement(int d, double bal, string desc); 

private: 
    string description; 
    double balance; 
    int day; 
}; 

Bank_Statement::Bank_Statement(int d, double bal, string desc) 
{ 
    description = desc; 
    balance = bal; 
    day = d 
} 

int main(){ 
    Bank_Statement statement1; 

    cin >> statement1.d >> statement1.bal >> statement1.desc; 

    vector<Bank_Statement> user_statements; 

    int day_of_month; 

    for (day_of_month = 0, day_of_month < user_statements.size(); day_of_month++){ 
     user_statements.push_back(statement1); 
    } 

    return 0; 
} 

ответ

0

Он даже не входит в цикл. Когда вектор создан, его размер равен нулю. Это означает, что выражение day_of_month < user_statements.size() (условие цикла) всегда будет ложным.

Вы должны прочитать вход в петлю, что-то вроде

Bank_Statement statement; 
std::vector<Bank_Statement> user_statements; 

while (std::cin >> statement.d >> statement.bal >> statement.desc) 
{ 
    user_statements.push_back(statement); 
} 
0

Thats из-за состояния day_of_month < user_statements.size(). Изначально вектор пуст и не удовлетворяет условию выполнения операции push_back на векторе.

2

Имена аргументов конструктора не являются членами данных класса. Когда вы это сделали:

cin >> statement1.d >> statement1.bal >> statement1.desc; 

Это не так, потому что это не члены, объявленные в классе. Используйте вместо этого description, balance и day.

+2

Вы частично правы, но все равно это не сработает, потому что они частные. – chris

+0

Это правильно, но я подумал о создании конструктора и использовании cin >> statement1.d >> statement1.bal >> statement1.desc; позволит мне вводить данные, но теперь он говорит, что у bank_statement нет члена. Кажется, я смущен. – user2420948

Смежные вопросы