Игры здесь
Воскресенье, 22.12.2024, 04:24



Приветствую Вас Гость | RSS
[ Главная ] [ Несколько правил быстрой сборки проекта - Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Несколько правил быстрой сборки проекта
DoubleVenomДата: Понедельник, 21.02.2011, 15:53 | Сообщение # 1
Рядовой
Группа: Администраторы
Сообщений: 12
Репутация: 0
Статус: Offline
Правило 1:
Минимум включений в *.h файл.

Лучше всего в любом классе все поля делать указателями и использовать предварительные объявления: class <имя>.
Подключая *.h в файле реализации по мере надобности.
Исключения составляют библиотечные файлы (STL, ATL и т.д.). Их тоже можно подключать в *.cpp, но мы не всегда знаем, что конкретный тип данных описан как class <имя>. Он может быть typedef, как std::string, и проект не скомпилируется.

Пример:

-
mininc.h
-
#include <string> //string - из библиотеки STL, поэтому подключаем здесь
using namespace std;

class MyClass; //предварительное объявление, без него компилятор не будет знать, что делать

class MinInc {
private:
string m_str;
MyClass* m_pMyClass;
public:
MinInc();
virtual ~MinInc();
void doSome();
};

-
MinInc.cpp
-
#include "MyClass.h" //подключаем наш файл

MinInc::MinInc() {
m_str = "hello world!";
m_pMyClass = new MyClass; //такую реализацию конструктора записать в *.h файле, как любят некоторые, не получится
}

MinInc::~MinInc() {
delete m_pMyClass; //не забываем удалять, или используйте лучше boost::shared_ptr
}

void MinInc::doSome() {
delete m_pMyClass;
m_pMyClass = new MyClass(5);
}

Если остались вопросы - советую почитать "Эффективное программирование" С. Майерс

 
  • Страница 1 из 1
  • 1
Поиск:

Михаил, 2024      Создать бесплатный сайт с uCoz