Задать вопрос
xztau
@xztau
Я

Как работать со статическими ссылками в C++?

В статическом классе работы с БД есть ссылка, которая, по идее, нужна, чтобы постоянно не открывать-закрывать соединение с БД. (одна открытая БД на всю программу)
class DB{
public:
    static bool createConnection();
private:
    static QSqlDatabase *pdb;
};


Компилятор требует её описания.
Где и как её описать в программе?

QSqlDatabase DB::pdb = NULL;
int main(int argc, char *argv[])
{
}

не работает
  • Вопрос задан
  • 2272 просмотра
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Разработчик C++
    9 месяцев
    Далее
  • Яндекс Практикум
    Разработчик C++ расширенный
    12 месяцев
    Далее
  • Яндекс Практикум
    Мидл разработчик С++
    4 месяца
    Далее
Решения вопроса 1
maaGames
@maaGames
Погроммирую программы
QSqlDatabase * DB::pdb = NULL;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Adamos
@Adamos
Лучше переделайте на такой вариант:
static QSqlDatabase* getPDB()
{
  static QSqlDatabase *pdb = NULL;
  if(pdb == NULL) {
    pdb = connect();
  }
  return pdb;
}

Ну, соответственно, connect должно создавать это самое соединение и возвращать тот самый указатель.
И никаких глобальных членов класса...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы