And*_*res 1 c++ oop containers stl
实际上,我在这里有一个设计问题.它非常简单但重点是:
我有一个C++类,其STL向量被声明为私有成员.但是该类的客户端需要遍历此向量.
在C#中,我们有一个非常方便的声明,产量,在这样的情况下,你写一个函数返回一个IEnumerable,它"产量"你一个很好的方式来遍历这个类内部的专用容器.
我只是想为C++找到一个优雅的解决方案,而不是使用像GetValue(int idx)这样的方法.
有什么建议?
例:
class Fat
{
public:
Fat();
// some code here ...
private:
void LoadSectors(SECT startPoint);
std::vector<SECT>sectors;
};
class Storage
{
public:
Storage(string CompoundFile);
//For example, this method will receive a ref to my fat system and iterate over
//the fat array in order to read every sector.
LoadStrem(Fat& fat);
};
Run Code Online (Sandbox Code Playgroud)
这是一个很简单的例子.
C++中没有与yieldC#类似的语法糖.如果你想创建一个类,它的实例应该以同样的方式股票STL集合是可迭代的,那么你必须为实现您的类的迭代器,公开为::iterator你的类型,并提供begin()和end()成员函数.
| 归档时间: |
|
| 查看次数: |
211 次 |
| 最近记录: |