私はNonVirtual Interface patternについて読んでいました: Herb Sutter は、ほとんどの場合、仮想関数が非公開でなければならず、場合によっては保護され、公開されてはならない理由について話しています。
しかし、彼は記事の最後に次のように書いています。
具体的なクラスから派生しないでください。または、Scott Meyers が「より効果的な C++」[8] の項目 33 で述べているように、「リーフ以外のクラスを抽象化する」。(確かに、それは実際に発生する可能性があります-もちろん、あなたではなく他の誰かによって書かれたコードで!-そしてこの1つのケースでは、すでに貧弱な設計に対応するためだけに、パブリック仮想デストラクタが必要になる場合があります。リファクタリングする方が良いただし、可能であればデザインを修正してください。)
しかし、なぜこれが悪いデザインなのか理解できません