我正在通過繼承創建一個類型爲Account *的AccountList的自定義QList。C++ QList繼承自定義方法問題
我對爲accountList接口聲明如下:
class Client
{
public:
Client(QString firstName, QString lastName, QString address1, QString address2, QString postalCode);
QString toString();
private:
QString m_FirstName;
QString m_LastName;
QString m_Address1;
QString m_Address2;
QString m_PostalCode;
};
class Account
{
public:
Account(unsigned acctNum, double balance, const Client owner);
unsigned getAcctNum();
double getBalance();
Client getOwner();
virtual ~Account();
private:
unsigned m_AcctNum;
double m_Balance;
Client m_Owner;
};
class AccountList : public QList<Account*>
{
public:
QString toString() const;
Account* findAccount(unsigned accNum) const;
bool addAccount(const Account* acc) const;
bool removeAccount(unsigned accNum) const;
};
我有實施爲accountList,例如的問題findAccount方法。
Account* AccountList::findAccount(unsigned accNum) const
{
Account foundAccount;
foreach(Account* acc, this)
{
if (acc->getAcctNum() == accNum)
{
foundAccount = acc;
break;
}
}
return foundAccount;
}
希望上面的方法給你一個我想要完成的想法。看起來非常簡單直直,但我無法讓它工作。 Qt Creator編譯器在編譯時給了我各種奇怪的錯誤。
任何幫助,將不勝感激。
在QT C++框架中,foreach是一個有效的構造。我甚至在不使用foreach的情況下嘗試了這種方法,而是選擇了迭代器,但同樣的區別。 QList是Account *指針列表的唯一原因是因爲這就是我的任務所要求的。 我真的需要知道的是如何遍歷此列表,以便我可以基於賬號從列表中返回Account對象。 – 2010-09-04 13:22:50