Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2016, 14:42   #1
prog_130
 
Регистрация: 20.04.2016
Сообщений: 3
По умолчанию Использование глобальных переменных

Доброго дня. Взялся за написание небольшого проекта в связке С++ Builder 6/FB1.5
Решил создать класс по работе с БД (если честно, вплотную с классами заставил себя работать первый раз), напичкал его всякими методами и пр. Класс реализован в отдельном Unit-е. Подключал данный Unit на всех формах и, всякий раз, когда мне было необходимо работать с БД (скажем на событие нажатия какой либо кнопки), объявлял в пределах данного метода этот класс, вызывал конструктор, проводил какие-либо операции, затем удалял методом delete отведенную под него память. Со временем функционал приложения накопился и мне начало казаться, что такой подход выглядит как какая то извращенная форма программирования (потому как почти на каждое событие на форме выполнялась данная процедура). Решил, что буду объявлять этот класс глобально в Unit-е, вызывать конструктор на FormShow() и освобождать память в FormClose().
Тут же столкнулся с warning-ом [Linker Warning] Public symbol 'DB_' defined in both module.
Посему назрел вопрос: Как вы реализуете структуру своего приложения?
Какой стиль будет являться правильным? Если возможно, хотелось бы видеть ссылку на какую нибудь годную статью или услышать мнение сведущих людей.
prog_130 вне форума Ответить с цитированием
Старый 27.05.2016, 15:24   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Взялся за написание небольшого проекта в связке С++ Builder 6
Машину времени?
Цитата:
объявлял в пределах данного метода этот класс, вызывал конструктор, проводил какие-либо операции, затем удалял методом delete отведенную под него память
Разве в билдере (С++) нельзя просто так?
Код:
{
    MyClass obj(...);
    obj.DoSomething();
}
или так:
Код:
// .h

class MyForm
{
public:
    MyForm();
...
private:
    MyClass m_obj;
};

// .cpp

MyForm::MyForm()
    : m_obj(...)
{ }
+ smart pointer'ы если действительно нужен new.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 27.05.2016 в 15:27.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Порядок инициализации глобальных переменных 220Volt Общие вопросы C/C++ 17 28.03.2015 07:46
Обнуление глобальных переменных g11112 Общие вопросы Delphi 2 05.08.2013 16:35
Конфликт глобальных переменных RRt C/C++ Сетевое программирование 3 23.08.2012 22:51
Обнуление глобальных переменных в VBA Arkasha69 Microsoft Office Excel 1 06.09.2010 15:06
Правильное объявление глобальных переменных voam Microsoft Office Excel 5 14.05.2010 14:25