Я работал над проектом, использующим стеки для решения лабиринтов, и использовал класс «Лабиринт» и одну функцию «FindCoord». Я перечислил определение класса и функции (я не написал ни одной части определения функции, но для примера не нужен). Я заметил это, когда вставил определение моего класса и определение функции в файл Maze. cpp (не используя файл Maze.hpp), а затем написал #Include "Maze. cpp" в свой основной файл. cpp file, я получу ошибку компоновщика при запуске Xcode. Я понимаю, что вы должны написать определение класса и объявления функций в файле .hpp, а записи функций в файле. cpp. Мне просто было любопытно, что произойдет, если я просто воспользуюсь файлом. cpp. Однако, когда я записал свое определение класса и определение моей функции в мой Maze.hpp (хотя и не использовал мой файл. cpp), а затем запустил Xcode, ошибок компоновщика не было, и все работало нормально. Кажется, я не понимаю, почему я мог использовать только файл .hpp, не имея возможности использовать только. cpp. Есть ли что-то в файле. cpp в Xcode, которое мешает мне использовать его как для объявления классов, так и для определения функций?
class Maze
{
public:
Maze(int rr, int cc) : m_r(rr), m_c(cc) {}
int r() const { return m_r; }
int c() const { return m_c; }
private:
int m_r;
int m_c;
};
void findCoord(int r, int c)
{
//function definition
}