Здравствуйте
Изучая wxWidgets столкнулся с такой проблемой:
классы взаимно ссылаются друг на друга,если им нужно взаимодействовать между собой.
Возможно ли как-то указать компилятору, что спецификация класса будет "дальше по тексту".
И еще:
В туториалах по Qt встречал объявления вроде
class MyWidget;
Где дальше следовал код других классов, которые могли создавать экземпляры этого MyWidget и т.д. Когда применяется такой способ (и для чего он вообще нужен?). Чем то напоминает forward-объявление переменной или функции (с помощью extern). Может это поможет разрешить проблему перекрестных ссылок (хотя у меня не получилось — компилятор не может найти поля класса
![](/Forum/Images/frown.gif)
)
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте
А>Изучая wxWidgets столкнулся с такой проблемой:
А>классы взаимно ссылаются друг на друга,если им нужно взаимодействовать между собой.
А>Возможно ли как-то указать компилятору, что спецификация класса будет "дальше по тексту".
А>И еще:
А>В туториалах по Qt встречал объявления вроде
А>А>class MyWidget;
А>
А>Где дальше следовал код других классов, которые могли создавать экземпляры этого MyWidget и т.д. Когда применяется такой способ (и для чего он вообще нужен?). Чем то напоминает forward-объявление переменной или функции (с помощью extern). Может это поможет разрешить проблему перекрестных ссылок (хотя у меня не получилось — компилятор не может найти поля класса
)
Это оно и есть. Это называется объявлением класса. Используется просто для введния имени в область видимости.
Создавать объекты этого класса нельзя, а указатели (и ссылки) — можно.
Здравствуйте, LaptevVV, Вы писали:
LVV>Здравствуйте, Аноним, Вы писали:
А>>Здравствуйте
А>>Изучая wxWidgets столкнулся с такой проблемой:
А>>классы взаимно ссылаются друг на друга,если им нужно взаимодействовать между собой.
А>>Возможно ли как-то указать компилятору, что спецификация класса будет "дальше по тексту".
А>>И еще:
А>>В туториалах по Qt встречал объявления вроде
А>>А>>class MyWidget;
А>>
А>>Где дальше следовал код других классов, которые могли создавать экземпляры этого MyWidget и т.д. Когда применяется такой способ (и для чего он вообще нужен?). Чем то напоминает forward-объявление переменной или функции (с помощью extern). Может это поможет разрешить проблему перекрестных ссылок (хотя у меня не получилось — компилятор не может найти поля класса
)
LVV>Это оно и есть. Это называется объявлением класса. Используется просто для введния имени в область видимости.
LVV>Создавать объекты этого класса нельзя, а указатели (и ссылки) — можно.
Вызывать методы этого класса также нельзя.