Что означает такая запись: class MyClass; ? объявление существующего класса без реализации
Для компилятора это знак того, что класс полностью объявлен в другом месте этого проекта (например, в соседнем файле).
Так делают, чтобы избежать взаимного включения. Например, у Вас есть файл X.h
в котором объявлен класс X
и файл Y.h
, в котором объявлен класс Y
. При этом Вам зачем-то понадобилось использовать класс X
в классе Y
и наоборот (например, объекты одного класса являются свойствами другого). Тогда, если включить один файл в другой с помощью #include
, и со вторым сделать то же самое, компилятор засыплет Вас ошибками, вызванными взаимным включением. И вот именно в такой ситуации используют представленное Вами объявление. Например в классе X
, чтобы объявить свойство, являющееся объектом класса Y
, можно не писать #include"Y.h"
, а написать лишь class Y;
. Это даст понять компилятору, что класс Y
объявлен где-то вне этого файла, и при сборке он обязательно его найдёт.
Возможно это не единственный пример использования такой конструкции. Я просто рассказал то, с чем сам сталкивался на практике.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Как сделать,чтобы при увеличении размера заголовка, текст не выходил за красную зону снизу и оставался на одной линии с другими заголовками...
Рассчитываю силу по формуле Масса * ускорение, при положительном ускорение меньше чем 10 объект идет вниз,при ускорение 10 и больше объект только...
Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы на него можно было дать ответ, основанный на фактах и цитатах