我一直在使用C#一段时间,回到C++是一件令人头疼的问题.我试图从C#获得我的一些实践与C++,但我发现了一些阻力,我很乐意接受你的帮助.
我想为这样的类公开一个迭代器:
templateclass MyContainer { public: // Here is the problem: // typedef for MyIterator without exposing std::vector publicly? MyIterator Begin() { return mHiddenContainerImpl.begin(); } MyIterator End() { return mHiddenContainerImpl.end(); } private: std::vector mHiddenContainerImpl; };
我在尝试一些不是问题的东西吗?我应该只是输入std :: vector
您可能会发现以下文章很有趣,因为它准确地解决了您发布的问题:关于面向对象和C++中的泛型编程之间的张力以及什么类型的擦除可以做到这一点