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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2012, 18:17   #1
ser70
Форумчанин
 
Аватар для ser70
 
Регистрация: 02.10.2009
Сообщений: 255
По умолчанию Секундомер

Что тут неправильно:

Код:
#include <iostream>
#include <ctime>
using namespace std;

class timer {
  clock_t start;
public:
  timer();
  ~timer();
};

timer::timer() {
  start = clock();
}

timer::~timer() {
  clock_t end;
  
  end = clock();
  
  cout << "Затраченное время: " << end - start << endl;
}

int main() {
  timer ob;
  
  char c;
  
  cout << "Нажмите любую клавишу, затем ENTER: ";
  cin >> c;
  
  return 0;
}
Почему выводит затраченное время равное 0????
"Реальность воображаема, а воображаемое - реально" В. Соло
ser70 вне форума Ответить с цитированием
Старый 23.12.2012, 18:45   #2
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

printf ("time elapsed: %f seconds\n",t,((float)(end-start))/CLOCKS_PER_SEC);
_Bers вне форума Ответить с цитированием
Старый 23.12.2012, 21:54   #3
Smogg
Участник клуба
 
Регистрация: 14.06.2011
Сообщений: 1,138
По умолчанию

Задачка на конструкторы/деструкторы?

UPD:
немножко теории (может большей частью для себя, как самоучки в процессе):
объекты бывают статическими и динамическими:
1. статические объявляются как Cclass obj.
2. динамические - как Сclass *obj;

Соответственно, конструкторы для статических вызываются сразу по объявлению, а для динамических - через оператор new. Причем время жизни статических объектов - в пределах блока { ...; }.

Ну, а конструкторы, соответственно, вызываются также двумя способами.
Для статических по автомату, при выходе из блока. А для динамических - явно, через оператор delete.
_____

Исходя из этой краткой справки, автору вопроса предлагается реализовать оба способа вызова конструктов/деструктов))

И еще, таки правда, clock() возвращает миллисекунды...

Последний раз редактировалось Smogg; 23.12.2012 в 22:10.
Smogg вне форума Ответить с цитированием
Старый 24.12.2012, 00:10   #4
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию

чувак ну ты создал его в стеке... ты хоть паузу сочини... или цикл... пусть он удерживает.. а так ещё бы.... прога даже милисек не пройдёт сожрёт и уедет
а лучше new и delete их можно расположить там где нужно.. что бы ответ удержать.
да саму штуковину. и да прислушайся к берсу у него путный код.
Если помог, тут весы есть , Вам не сложно, а мне приятно.

Последний раз редактировалось Perchik71; 24.12.2012 в 00:17.
Perchik71 вне форума Ответить с цитированием
Старый 24.12.2012, 04:03   #5
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Perchik71 Посмотреть сообщение
. ты хоть паузу сочини...


Код:
int main() {
  timer ob;
  
  char c;
  
  cout << "Нажмите любую клавишу, затем ENTER: ";
  cin >> c;
  
  return 0;
}
_Bers вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Секундомер shinydo Visual C++ 0 01.03.2012 14:54
Секундомер aesoem Общие вопросы Delphi 10 28.01.2008 19:25
секундомер itisiam Общие вопросы Delphi 6 31.05.2007 16:55