Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка с полем в классе Пишу класс.Сюда его выкладывать не хочу,ибо он достаточно обширный.В классе доступе private задаю поле дескриптора файла.Тоесть что-то типо того: Class Myclass { private: HANDLE file; ... public: ... }; https://www.cyberforum.ru/ cpp-beginners/ thread939514.html Сообщения между win32 приложениями C++
Как отправить сообщение (аналог системных типа WM_DESTROY только свои) и обработать приемником? приёмник это обычное консольное win32 приложение(когда в визуале пустой проект win32 создаешь)
C++ Как назвать классы? https://www.cyberforum.ru/ cpp-beginners/ thread939491.html
Сразу замечу, что дело происходит в 2D без физики, как таковой. 1) У меня есть классы: Mixer - звуковой движок Graphics - графический движок У звукового движка есть базовый класс: MixerPrimitiveType (некоторая инфа для воспроизведения) от которого наследюутся:
C++ Не удается подключить к приложению gtest и свою статическую либу VS 2010 Здравствуйте, господа. Возникла проблема с линкером в VS 2010 после подключения к консольному приложению собственной же статической библиотеки. В солюшене 2 проекта: 1 - статическая библиотека, 2 - приложение для тестов её функций, к этому приложению подключен gtest через его статическую либу. В 1-м проекте статической библиотеки имеется h-ник с API этой либы. Так как API может оперировать... https://www.cyberforum.ru/ cpp-beginners/ thread939486.html
Консоль для ведения логов C++
Не уверен, что пишу туда, куда нужно, но есть только один способ узнать. Интересуют существующие решения по сабжу. Требования простые: - Минимум зависимостей - Цветной текст и фон - Динамические фильтры записей - Много буков - Желательно, отдельный поток и кеширование на диск - Картинки и ссылки приветствуются
C++ Крутящееся колесо https://www.cyberforum.ru/ cpp-beginners/ thread939479.html
Может ли кто написать (срочно) программу крутящееся колесо, исходник чтобы был с комментариями.
C++ char массив, get(), ввести больше символов чем в массиве https://www.cyberforum.ru/ cpp-beginners/ thread939467.html
#include <iostream> using std::cin; using std::cout; using std::endl; int main() { setlocale(LC_ALL,""); char AAA;
C++ С++ и поиск в сети
Как при вводе URL в консоль реализовать поиск сайта в сети и отобразить его в отдельном окне?
C++ Алгоритм шифрования симметричным ключом (CRAB) https://www.cyberforum.ru/ cpp-beginners/ thread939449.html
Помогите, ребята, кто знает, а то я пока слабо понимаю, что нужно сделать и как это реализовать. Нужно написать библиотеку. Требования: Зашифрованный текст может быть расшифрован с помощью инструментов OpenSSL: OpenText => The Library => EncryptedText => OpenSSL tool => OpenText Зашифрованный текст с помощью OpenSSL может быть расшифрован в вашей библиотеке. OpenText => OpenSSL tool =>...
C++ Что выбирать для дальнейшего изучения Windows 7 c Win32 или Windows 8 c WinRt? https://www.cyberforum.ru/ cpp-beginners/ thread939401.html
Стоит или ещё изучать Windows 7 в целом и Win32? Сейчас много людей все ещё пользуется этим, но не уверен стоит ли начинать, ведь будет обидно когда я научусь пользоваться хорошо этим, а оно уже не будет таким популярным и на сцену выйдет Windows 8 и WinRT. Ещё видел очень много плохих отзывов о Win32. А WinRT стала лучше? Может задам некорректный вопрос, но какая из них может помочь в лучшем...
C++ Меню пуск, получить список Win7
Привет, как можно получить список строк в меню пуск, там где возле кнопки "Выключение" есть такая стрелка вправо и если ее нажать откроется список, в котором будет "Сон", "Гибернация" и тд ?
C++ Место расположения проэкта в ноуте Подскажите, пожалуста, а то я что-то наверно вовсе туплю.. Как создать проект в опридиленой папке? Пока они создаются что-то в C:\Documents and Settings\User\Мои документы\Visual Studio 2010\Projects\MeinFuncts https://www.cyberforum.ru/ cpp-beginners/ thread939388.html
Evg
Эксперт CАвтор FAQ
21279 / 8301 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
20.08.2013, 14:06 0

реализация класса в .h файле хорошо или плохо? - C++ - Ответ 4967162

20.08.2013, 14:06. Показов 14994. Ответов 61
Метки (Все метки)

Ответ

Цитата Сообщение от Убежденный Посмотреть сообщение
Эффект от -fno-inline более глубокий, чем ты описываешь - он отключает инлайнинг по всему коду
Да, отключает. Но очень много всего в нашем случае некритично, ибо будет составлять проценты, может десятки процентов. В нашем случае речь шла о разнице более, чем на порядок, а потому всеми этими процентами и десятками процентов можно пренебречь. Во всяком случае для меня это очевидно (т.к. есть опыт в этой области). Но это вовсе не означает, что это так же очевидно тебе и другим. Поэтому привожу обещанный ранее пример. В примере у нас имеются элементы Elem и массив Elem'ов. Создаём массив, инициализируем его, затем инкрементируем значения

========== Реализация методов в хидере ==========

C++
// Файл t1.cc
 
#include "t.h"
 
#define SIZE 10000
#define COUNT 100000
 
/* Атрибут втыкаем для того, чтобы отрезаться от цикловых оптимизаций
 * вточке вызова и замерить условно чистое время работы данной функции */
void __attribute__((noinline))
test_func (void)
{
  Array array (SIZE);
 
  for (int i = 0; i < SIZE; i++)
    {
      Elem elem (i);
      array.Set (i, elem);
    }
 
  for (int i = 0; i < SIZE; i++)
    {
      Elem elem = array.Get (i);
      elem.Set (elem.Get() + 1);
      array.Set (i, elem);
    }
}
 
int
main (void)
{
  for (int i = 0; i < COUNT; i++)
    test_func ();
 
  return 0;
}
C++
// Файл t.h
 
class Elem
{
private:
  int x;
public:
  Elem () { x = 0; }
  Elem (int _x) { x = _x; }
  int Get (void) { return x; }
  void Set (int _x) { x = _x; }
};
 
class Array
{
private:
  Elem *elems;
public:
  Array (unsigned size) { elems = new Elem[size]; }
  ~Array () { delete elems; }
  Elem Get (unsigned index) { return elems[index]; }
  void Set (unsigned index, const Elem &elem) { elems[index] = elem; }
};
Код
$ g++ t1.cc -O3
$ time ./a.out
real    0m1.719s
user    0m1.718s
sys     0m0.001s
========== Реализация методов в отдельном файле ==========

Файл t1.cc остаётся без изменений.

Из файла t.h удаляем все реализации

C++
// Файл t.h
 
class Elem
{
private:
  int x;
public:
  Elem ();
  Elem (int _x);
  int Get (void);
  void Set (int _x);
};
 
class Array
{
private:
  Elem *elems;
public:
  Array (unsigned size);
  ~Array ();
  Elem Get (unsigned index);
  void Set (unsigned index, const Elem &elem);
};
Добавляем файл t2.cc с реализацией методов

C++
// Файл t2.cc
 
#include "t.h"
 
Elem::Elem ()
{
  x = 0;
}
 
Elem::Elem (int _x)
{
  x = _x;
}
 
int
Elem::Get (void)
{
  return x;
}
 
void
Elem::Set (int _x)
{
  x = _x;
}
 
Array::Array (unsigned size)
{
  elems = new Elem[size];
}
 
Array::~Array ()
{
  delete elems;
}
 
Elem
Array::Get (unsigned index)
{
  return elems[index];
}
 
void
Array::Set (unsigned index, const Elem &elem)
{
  elems[index] = elem;
}
Код
$ g++ t1.cc t2.cc -O3
$ time ./a.out
real    0m24.781s
user    0m24.529s
sys     0m0.172s


Вернуться к обсуждению:
реализация класса в .h файле хорошо или плохо? C++
1
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.08.2013, 14:06
Готовые ответы и решения:

Такой способ создание экземпляра класса хорошо или плохо?
Объясните пожалуйста в чем есть плохо создавать экземпляр класса вот так? class A{ ...

Многопоточность - хорошо или плохо?
Начал писать программы с многопоточностью. Имею 64х AMD 4-ядерный. Ранее думал, что на таком...

Google: хорошо или плохо?
давайте по холливарим немного

Ссылки - хорошо или плохо?
Сразу извиняюсь, не смог придумать более вменяемое название. А проблема вот в чем - создаю граф,...

61
20.08.2013, 14:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.08.2013, 14:06
Помогаю со студенческими работами здесь

Глобальные указатели. Плохо или хорошо?
Уважаемые знатоки, хотел уточнить один вопрос. Дело в том, что я использую глобальные указатели на...

молодняк получил пр=0 хорошо или плохо?
молодой блог ~200 статей. тематика &quot;культура и история&quot; в Г.Панельке словил пр морды 0, раньше не...

Средний балл - хорошо или плохо
С клавиатуры вводятся оценки студента, объемом n, определить средний балл и вывести &quot;хорошо&quot;, если...

Статические функции-члены - хорошо или плохо?
Всем привет. Приведу пример такой архитектуры. Есть базовый интерфейс. От него наследуются...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru