Ты хоть сам проверял на работоспособность? У тебя в интерфейсе BSMain все геттеры возращают nullptr. Ладно, можно подумать, что в классах нет ничего, кроме функций, но при их вызове первым параметром будет передаватся указатель this (а он нулёвый, что может вызвать undefined behavior). Лучше делал бы через namespace, а если хочешь через классы, то используй паттерн singleton для них.