2013-05-25 110 views
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; 
} 

回答

0

它甚至沒有進入循環。當矢量被創建時,其大小爲零。這意味着表達式day_of_month < user_statements.size()(循環條件)將始終爲假。

你應該閱讀輸入循環,類似的,因爲條件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

那。最初,vector是空的,並且不滿足對vector執行push_back操作的條件。

2

構造函數的參數名稱不是該類的數據成員。當你這樣做時:

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

這是不對的,因爲這些不是在類中聲明的成員。改爲分別使用descriptionbalanceday

+2

你有部分權利,但它仍然無法正常工作,因爲它們是私密的。 – chris

+0

這是正確的,但我認爲創建構造函數並使用cin >> statement1.d >> statement1.bal >> statement1.desc;將允許我輸入數據,但現在它說bank_statement沒有memeber。我覺得我很困惑。 – user2420948