- 冒号空间 - https://blog.zhenghui.org -

Reply To: 另类继承

>>noncopyable的原理从继承的角度看是通过基类对派生类产生约束而实现不可拷贝的效果的。我把这种方式称为“继承约束”,它与实现继承的“继承功能”和mixin的“混入功能”就显得有些不同。一个注重约束,一个注重功能。


你的这种说法有一定道理,但仅限于noncopyable这类特殊用法,其他的非公开继承(书中p241中提到的protected inheritance与private inheritance)还是注重功能而非约束的。当然,如果把约束看作一种特殊的功能(不妨称之为“负功能”?),它们又可以统一了。


此外,书中提到noncopyable类似mixin的地方有一个关键处,即noncopyable类本身具有抽象性(因为一个单纯的noncopyable对象是毫无意义的——无论是语法上还是语义上),故可看作抽象类型(尽管不是严格语法意义上的抽象类型)。


Share