Как исправить ошибку при инициализации статического указателя на класс?
Мне нужно сделать двусторонний канал связи между двумя классами. Я решил реализовать это с помощью static указателей. Один класс наследник QMainWindow, другой QTcpServer.
В файл mainwindow.h объявил переменную static MainWindow* pMainWindow;. Далее пытался определить её двумя способами:
1) в main.cpp определил как MainWindow::pMainWindow = new MainWindow();
2) В конструкторе присвоил pMainWindow this
В обоих случаях возникает ошибка undefined reference to `MainWindow::pMainWindow'.
Я думал ошибка в том что я изначально не определил указатель в mainwindow.cpp, но при задании там nullptr выдавалась ошибка C++ requires a type specifier for all declarations.
Ошибка возникает и в другом классе.
Что я сделал не правильно?
В Qt есть специальный механизм для передачи данных между классами - сигналы и слоты.
Без конкретного кусочка кода не очень понятно в чем ошибка. Возможно, вы не объявили переменную static MainWindow* pMainWindow;
внутри тела класса