powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Об использовании глобальных переменных в qt C++
16 сообщений из 16, страница 1 из 1
Об использовании глобальных переменных в qt C++
    #39735097
seg856
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для хранения глобальных переменных использую класс
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
//globalVariable.h

#include "database.h"

class globalVariable{

public:
static DataBase *db;
};

]

В каком месте программы и как я должен объявлять, инициализировать db, чтобы можно было вызывать методы класса DataBase в main.cpp?
...
Рейтинг: 0 / 0
Об использовании глобальных переменных в qt C++
    #39735134
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
seg856Для хранения глобальных переменных использую класс

Плохая идея. Реально плохая. Глобальные переменные сами по себе must die, а уж собирать их
все без разбора в один namespace и вовсе бессмысленно.

В твоём случае стоит объявлять переменную db в модуле, который реализует класс DataBase и
декларировать её в соответствующем заголовке:
Код: sql
1.
2.
3.
// database.h
class Database { ... };
extern Database* db;


Код: sql
1.
2.
// database.cpp
Database* db = new Database();


Код: sql
1.
2.
// main.cpp
#include <database.h>


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Об использовании глобальных переменных в qt C++
    #39735145
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

и чем разбросать их по программе лучше, чем собрать в одном месте?
...
Рейтинг: 0 / 0
Об использовании глобальных переменных в qt C++
    #39735146
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)и чем разбросать их по программе лучше, чем собрать в одном месте?
С точки зрения дизайна - лучше чтобы сущности были в соответствующих по смыслу модулях.

Но все это разбивается о неопределенный порядок инициализации глобальных переменных между модулями ))
...
Рейтинг: 0 / 0
Об использовании глобальных переменных в qt C++
    #39735148
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyНо все это разбивается о неопределенный порядок инициализации глобальных переменных между
модулями ))

Что приводит к инициализации on demand, которая тоже хорошо в некоторых случаях, ибо
позволяет не тратить ресурсы на инициализацию ненужных вещей.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Об использовании глобальных переменных в qt C++
    #39735155
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
seg856,

Код: plaintext
1.
2.
3.
4.
5.
//globalVariable.cpp

#include "database.h"

DataBase * globalVariable::db;
...
Рейтинг: 0 / 0
Об использовании глобальных переменных в qt C++
    #39735157
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, конечно, еще

#include "globalVariable.h"
...
Рейтинг: 0 / 0
Об использовании глобальных переменных в qt C++
    #39735207
seg856
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, выдает ошибку
...
Рейтинг: 0 / 0
Об использовании глобальных переменных в qt C++
    #39735357
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
seg856,

до чтения учебников тебе нечего делать в С++
...
Рейтинг: 0 / 0
Об использовании глобальных переменных в qt C++
    #39735479
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovПлохая идея. Реально плохая. Глобальные переменные сами по себе must die, а уж собирать их
все без разбора в один namespace и вовсе бессмысленно.


Что ж они must die -то, если любое приложение наполовину на них держится?
...
Рейтинг: 0 / 0
Об использовании глобальных переменных в qt C++
    #39735481
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
seg856
В каком месте программы и как я должен объявлять, инициализировать db, чтобы можно было вызывать методы класса DataBase в main.cpp?

Где угодно, как угодно.

Например, в main и создай, потом там же в main и используй.
...
Рейтинг: 0 / 0
Об использовании глобальных переменных в qt C++
    #39735565
seg856
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemargl, C++ изучал лет 12 назад, но писал на VFP9. С ошибками разобрался.
...
Рейтинг: 0 / 0
Об использовании глобальных переменных в qt C++
    #39735726
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
самое странное, в этом вопросе моё мнение полностью совпадает с мнением MasterZiv .
...
Рейтинг: 0 / 0
Об использовании глобальных переменных в qt C++
    #39735742
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivлюбое приложение наполовину на них держится

А вторая половина - костыли и подпорки чтобы оно не падало на гонках потоков, на
инициализации/деинициализации, на обращении к неправильной переменной и т.д. и т.п.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Об использовании глобальных переменных в qt C++
    #39735828
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

да ладно загоняться, в подавляющем количестве приложений в потоках вообще нужды нет

глобальные переменные больше мешают оптимизатору компилятора, но как известно проблемы индейцев, шерифа волновать не должны
...
Рейтинг: 0 / 0
Об использовании глобальных переменных в qt C++
    #39751449
egorthik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
seg856Для хранения глобальных переменных использую класс
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
//globalVariable.h

#include "database.h"

class globalVariable{

public:
static DataBase *db;
};

]

В каком месте программы и как я должен объявлять, инициализировать db, чтобы можно было вызывать методы класса DataBase в main.cpp?

Объяви в паблике класса mainwindow или widget ( смотря какой ты используешь)

А получить к нему доступ ты можешь так ( из main.cpp)

w.db
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Об использовании глобальных переменных в qt C++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]