xztau
@xztau
Я

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

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


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

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

не работает
  • Вопрос задан
  • 2270 просмотров
Решения вопроса 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 должно создавать это самое соединение и возвращать тот самый указатель.
И никаких глобальных членов класса...
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы