(Untitled)

Apr 14, 2009 23:54

По-моему, самое неприятное наследие от С в С++, это порядок объявлений. То есть нельзя в двух классах работать со структурами, объявленными друг в друге.

Leave a comment

Comments 2

realurix April 14 2009, 21:43:33 UTC
В С следующее обьявление даст ошибку.
typedef struct STR { STR *s; } STR;

А вот так можно делать.
typedef struct STR STR;
struct STR { STR *s; };

А вот в C++ в обявления в классах предполагают наличие в неявном виде еще и присутствие методов. Следовательно, полные структуры будут разные и из надо по разному идентифицировать.

Reply


(The comment has been removed)

tozhe_skazo4nik April 24 2009, 20:41:13 UTC
Увы, С++ не даёт предекларировать вложенный класс/структуру без реализации основного класса. Это и не даёт взаимно использовать вложенные классы/структуры.

Reply


Leave a comment

Up