C ?protected?繼承和?private?繼承是不是沒用的廢物?
〇、引言
既然你所統(tǒng)計的項目里出現(xiàn)了 private 繼承和 protected 繼承,這不正說明確實有他們的用武之地嗎?
一、現(xiàn)有項目分析(以 STL 的三大實現(xiàn)為例)
讓我們來康康 C 代碼的標桿——STL 的源碼,是怎么做的:
二、protected private 繼承的實際運用場景考察
1)很多人說你用 protected private 繼承倒不如用組合,把原本的基類作為一個私有或保護字段。這種論調(diào)是很沒有道理的。很多時候,繼承是替代不了的。比如 C 里有一種非常常見的優(yōu)化技術叫:
{
};
template <typename T, typename Allocator = MyAllocator>
class MyVector: public Allocator
{
};
void use_allocator(const MyAllocator