您好我正在尝试将数据读入对象矢量但我无法这样做。我创建了一个类和该类的向量。当我尝试将数据读入向量时,我得到类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;
}
答案 0 :(得分:2)
构造函数的参数名称不是该类的数据成员。当你这样做时:
cin >> statement1.d >> statement1.bal >> statement1.desc;
这是不对的,因为那些不是在课堂上宣布的成员。分别使用description
,balance
和day
。
答案 1 :(得分:0)
它甚至不进入循环。创建矢量时,其大小为零。这意味着表达式day_of_month < user_statements.size()
(循环条件)将始终为false。
您应该在循环中读取输入,例如
Bank_Statement statement;
std::vector<Bank_Statement> user_statements;
while (std::cin >> statement.d >> statement.bal >> statement.desc)
{
user_statements.push_back(statement);
}
答案 2 :(得分:0)
这是因为条件day_of_month < user_statements.size()
。最初向量为空,不满足对向量执行push_back操作的条件。