Нет.Это принципиально невозможно.Подумайте об этом: класс будет иметь бесконечный размер (ну, если, конечно, у него нет других членов, но тогда что он делает?), И нет доказуемого определения / идентичности.
Вы можете хранить указатели надругие foo
объекты, хотя.Это работает до тех пор, пока не каждый foo
имеет указатель на член, который указывает на другой foo
или если ссылки образуют циклическую зависимость.В любом случае компилятор не будет диагностировать это так, как это должно быть с вашим попытанным решением, но вы можете столкнуться с проблемами во время выполнения, если не будете осторожны.
Ваш код предполагает, что вы реализуете дерево,Это причина (ну, я полагаю, одна из немногих), что std::map
, который обычно является деревом, динамически создает свои узлы и связывает их с указателями.Как и каждая реализация связанного списка.