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