我不知道这个解决方案...
例如,我的代码是,
class Bank
{
private :
list < Client*> clientList;
}
class Client
{
private :
list< Account*> accountList;
}
class account
{
private
list< string> statement;
}哦,我想在bank类中访问对账单!我想怎么访问它的.
1)在客户端类中使用list< Account*> getAccountList()方法,在Account中使用list<string> getStatement()方法。
但是为什么列表是私有的呢?嗯,还可以公开吗?
2)制作列表访问方式(嗯,比如pop和push?)在所有班级中..
我得了2分,但太糟糕了。我有很多事情要做,并且重复类似的功能...
最好的方法是什么?这是我永远不知道的方式吗?
发布于 2011-11-10 02:35:50
最好的解决方案是让每个类中的访问器方法返回对列表的常量引用:
class Account
{
private:
list<string> statements;
public:
const list<string>& getStatements() const
{
return statements;
}
};这比public要好,因为返回的列表引用是不可修改的。
可以有返回const_iterator的方法,但每个类都必须有返回begin、end和任何其他可能需要的列表操作的方法。
发布于 2011-11-10 01:06:06
通常你不应该访问你的类的私有成员,这是基本的面向对象的概念。但是,如果你想拥有列表的只读访问权限,只需返回它的const引用,如下所示:
const list<Client*>& getList()const{
return clientList;
}发布于 2011-11-10 01:09:39
正如前面提到的,您也可以将迭代器返回到列表的开头和结尾。
https://stackoverflow.com/questions/8068649
复制相似问题