2014-09-27 52 views
1

我必須創建一個內部定義爲短值向量的類。 vector的初始大小是40.現在,我必須創建一個構造函數,將用戶輸入的長整型轉換爲類對象。否則,向量的所有元素應爲0.使用構造函數C++將長整型轉換爲類對象

我試圖編寫代碼,但可以寫入直到此級別,現在m卡住了。 P.S.我在C++

class HugeInteger 
{ 
    public: 
    HugeInteger (long = 0); 
    void output (ostream& outs); 
    private: 
    vector<short> v; 
}; 

/*HugeInteger::HugeInteger (long = 0) 
{ 
    int i=0; 
    for (i=0;i<40;i++) 
    { 
    v.push_back (0); 
    } 
}*/ 


void HugeInteger ::output (ostream& outs) 
{ 
    int i = 0; 
    outs << "Values in the vector are initialized to" << endl; 
    while(i < 40) 
    { 
    outs << v[i] << "\t"; 
    i++; 
    } 
} 

int main() 
{ 
    long integer; 
    cout << "Enter a long integer" << endl; 
// for(int i=0;i<40;i++) 
    cin >> integer; 

    HugeInteger test (integer); 
    test.output(cout); 

    return 0; 
} 

以下錯誤初學者有:

錯誤1個錯誤LNK2019:無法解析的外部符號 「公用:__thiscall HugeInteger :: HugeInteger(長)」(?? 0HugeInteger @@ QAE @ J @ Z)在函數_main中引用

回答

1

默認參數在聲明中進行說明,而不在定義中進行說明。從定義中刪除它,例如

class HugeInteger 
{ 
    public: 
    HugeInteger (long = 0); 
    void output (ostream& outs); 
    private: 
    vector<short> v; 
}; 

HugeInteger::HugeInteger (long) <-- 
{ 
} 
+0

我已經解決了這個問題。無論如何,謝謝,但現在我面臨着另一個問題。看到我編輯的帖子。你能幫我解決這個問題嗎? – Kashish 2014-09-27 00:38:23

+0

你應該爲每個線程發佈一個問題。爲新問題提出一個新問題。無論如何,你完全刪除了該功能,使用我上面提供的代碼(不帶箭頭) – 2014-09-27 00:46:40

+0

@Macro A.對不起。我是堆棧溢出新手。無論如何,它現在編譯好了,但在運行時給出了一個錯誤'Vector下標超出範圍' – Kashish 2014-09-27 00:53:16

相關問題