К вопросу о uninheritable class
Я бы лично тоже решил задачку с private конструктором, но как видно это не то что задумывалось. Конечно можно воспользоваться языковыми примочками типа final (PHP), sealed (C#), NonInheritable (VB), но я так думаю что уважаемый Фей-Мод Dimm

хочет другое решение. К сожалению решения я ещё не нашел, но пока баловался, пришел к интересной штуке с вложенными классами. Вот пример:
Код:
class A1
{
public:
A1(){};
private:
class A2
{
public:
A2(){};
};
};
От класса А2 не только нельзя унаследовать (что собственно отвечает условиям задачи) но и создать вне класса А1 тоже нельзя. А может это и был ответ? /ooc crosses fingers