我应该公开受保护的std :: vector吗?

jma*_*erx 4 c++

我有一个班,我打算让别人继承.它有一个std :: vector,我只希望开发人员能够读取,但不能修改,我的基本函数修改它.我应该提供一个返回const迭代器的函数,或者将该向量公开为protected.

谢谢

Bjö*_*lex 9

如果将向量公开为protected,则子类将能够对其进行修改.因此,您应该公开返回const迭代器的方法.

您可以使用非虚拟接口惯用法为用户和子类公开不同的接口.