SFML и C++ Уроки \ Разработка игр › Форумы › SFML System, Window и другие вопросы › SFML окно внутри окна виндовс на С++ › Ответ в теме: SFML окно внутри окна виндовс на С++
Ну в хидере всегда висит обьявление, в cpp реализация. Если тебе нужно хранить в классе какой либо другой класс или передовать его в метод используй forward declaration(Т.е. сразу после include выписать используемые классы но header содержащий этот класс подключить в cpp файле!)
C++
1 2 3 4 5 6 7 8 9 10 |
//class1.h #include <iostream> class Class2//Здесь мы даём понять линковщику что о этом классе он узнает позже //По сути это уже можно назвать forward declaration class Class1 {public: void foo(Class2 in);//Мы обьявили метод, но его реализацию мы поместим в cpp файл } |
C++
1 2 3 4 5 6 7 8 |
//class2.h #include <iostream> class Class2 {public: void foo2() { std::cout << "I summoned!" << std::endl} } |
C++
1 2 3 4 5 6 7 8 9 10 11 |
//class1.cpp #include "class1.h" #include "class2.h" void Class1::foo(Class2 in) { std::cout << "Start summoning.." << std::end; in.foo2();//Если бы мы попытались вызвать метод в хидере - получили бы ошибку "Недопустимый не полынй тип" //При этом появляется возможность сделать два и более классов, которые могут включать в себя элементы друг друга //всё что о нас думает } |
Если работаешь из студии можешь использовать быстрые действия для генерации cpp файла.
Ну и на досуге стоит почитать это, да и любую другую литературу по плюсам. Хотя по сути я плюсы изучал по аналогии с тобой, вот только сам вопросы не кидал на форумы, а учился на чужих ошибках