0

嗨,我正在尝试将数据读入对象向量,但我在这样做时遇到了麻烦。我创建了一个类和该类的向量。当我尝试将数据读入向量时,我得到的类 Bank Statements 没有成员,然后我尝试读入的变量。

#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;
}
4

3 回答 3

2

构造函数的参数名称不是类的数据成员。当你这样做时:

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

这是不对的,因为这些不是类中声明的成员。分别使用descriptionbalanceday

于 2013-05-25T19:14:09.647 回答
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);
}
于 2013-05-25T19:10:44.673 回答
0

那是因为条件day_of_month < user_statements.size()。初始向量为空,不满足对向量执行 push_back 操作的条件。

于 2013-05-25T19:11:49.567 回答