Local Class
あまり知られていませんが、関数内でもクラスを宣言することができます。例えば、こんな感じで↓
void func(){ class Hoge{ }; }
このクラスは、絶対に継承できません。なんで、これを使うと、c++でも、finalなクラスを作ることができそうです。例えば、こんな↓
struct Base{ }; Base* FinalClassCreate(){ struct FinalClass : public Base{ }; return new FinalClass(); } int main(){ Base *b = FinalClassCreate(); }
参考:Modern C++ Design