在下面的代碼,我試圖用一個for
環路初始化的部件使用從字符串數組(在這種情況下的數字用於測試目的)Array
採取命名的類book
的五Name
對象。問題填充動態創建的陣列
#include <iostream>
#include <string>
using namespace std;
class book
{
private:
string Name;
public:
book();
book(string&);
};
book :: book()
{}
book :: book(string& temp)
{
Name = temp;
}
int main()
{
string Array[] = {"1", "2", "3", "4", "5"};
book *BookList = new book[5];
for (int count = 0; count < 5; count ++)
{
BookList[count] = new book(Array[count]);
}
return 0;
}
然而,每當我試圖編譯代碼時,我得到了以下錯誤:
main.cpp: In function ‘int main()’:
main.cpp:28: error: no match for ‘operator=’ in ‘*(BookList + ((unsigned int)(((unsigned int)count) * 4u))) = (operator new(4u), (<statement>, ((book*)<anonymous>)))’
main.cpp:6: note: candidates are: book& book::operator=(const book&)
我的目的是創建一個使用私有成員的值,將只有一次的被稱爲對象的數組循環收集相關數據。我遵循answer #2 to a question I asked here previously提供的建議。
看起來你正在製作一個`BookList`數組並嘗試用`book`對象初始化它。 – Argote 2011-02-17 23:53:56