Я делаю игру, и у меня есть класс под названием Man
и класс под названием Block
, в коде они оба нужны друг другу, но они находятся в отдельных файлах. Есть ли способ «предопределить» класс? Как макрос @class Objective-C?C++: два класса, которые нужны друг другу
ответ
Это называется круговой зависимостью. В классе Two.h
class One;
class Two {
public:
One* oneRef;
};
А в классе One.h
class Two;
class One {
public:
Two* twoRef;
};
"класс One;" и «второй класс»; директивы выделяют имена классов «один» и «два» соответственно; но они не определяют никаких других деталей, кроме имени. Таким образом, вы можете создать указатели на класс, но вы не можете включить весь класс так:
class One;
class Two : public One {
};
class Three {
public:
One one;
};
Причина два примера выше, не будет компилироваться, потому что в то время как компилятор знает, что есть один класс, это Безразлично» t знать, какие поля, методы или виртуальные методы, класс Один может содержать, потому что было определено только имя, а не фактическое определение класса.
Да.
class Man;
Это будет объявить Man
в качестве "неполного типа". Вы можете объявить указатели или ссылки на него и несколько других вещей, но вы не можете создать экземпляр или получить доступ к его членам. Это не полное описание того, что вы можете и чего не можете сделать с неполным типом, но это общая идея.
Важно отметить, что вы можете продолжить и включить полный тип позже и получить доступ. Вы можете использовать неполные типы в заголовке, а затем включить полное определение заголовка в cpp, чтобы использовать его. –
- 1. C++ Два класса, которые нужны друг другу в конструкторе?
- 2. Два объекта нужны друг другу
- 3. Два класса, которые относятся друг к другу
- 4. Два пространства имен нужны друг другу
- 5. Компиляция C++, когда два класса относятся друг к другу
- 6. Java, объекты класса, которые имеют разные методы друг к другу?
- 7. Два самолета, которые очень близко друг к другу
- 8. Создайте два класса, которые используют друг друга?
- 9. Два класса, которые используют константы друг друга
- 10. Травление объектов, которые относятся друг к другу
- 11. Нужна помощь, чтобы получить два класса, чтобы помогать друг другу
- 12. Мне нужны два JTextFields, которые влияют друг на друга
- 13. два pickerview по отношению друг к другу
- 14. два класса, ссылающиеся друг на друга
- 15. Два инструмента jquery мешают друг другу
- 16. два метода по умолчанию звонить друг другу
- 17. связывая два отдельных std :: списки друг другу
- 18. Два URL Rewrite противоречащими друг другу
- 19. Два метода .click, мешающие друг другу?
- 20. Поместите два тега друг к другу
- 21. как наложить два изображения друг другу
- 22. Границы функции, которые обращены друг к другу
- 23. Сравнение строк, которые не соответствуют друг другу
- 24. подклассов два класса с окончательными членами, которые относятся друг к другу
- 25. У меня есть два устройства и класс в каждом блоке, которые нужны друг другу для работы. Как избежать циркулярной ссылки?
- 26. Проверить, соответствуют ли два слова друг другу? (C)
- 27. Две идентичные строки, которые не равны друг другу
- 28. C++: два класса, ссылающиеся друг на друга
- 29. C# Добавление классов друг к другу
- 30. Сделать функции вызова друг другу - C
Звучит так, как вы хотите, это объявление вперед. – mooware
+1 для BlockDude. –