Is it okay to inherit implementation from STL containers, rather than delegate?

前端 未结 7 1117
一生所求
一生所求 2020-11-22 07:15

I have a class that adapts std::vector to model a container of domain-specific objects. I want to expose most of the std::vector API to the user, so that they may use famili

7条回答
  •  Happy的楠姐
    2020-11-22 07:42

    In this case, inheriting is a bad idea: the STL containers do not have virtual destructors so you might run into memory leaks (plus, it's an indication that STL containers are not meant to be inherited in the first place).

    If you just need to add some functionality, you can declare it in global methods, or a lightweight class with a container member pointer/reference. This off course doesn't allow you to hide methods: if that is really what you are after, then there's no other option then redeclaring the entire implementation.

提交回复
热议问题