Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
Anastasiya1
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 77
#1

Конструктор и деструктор - C++

07.08.2013, 18:14. Просмотров 1328. Ответов 39
Метки нет (Все метки)

Всем привет.Вообщем передо мной стоит такая задача-Отобразить на экране время работы программы, используя конструктор и деструктор.В конструкторе используем ф-ию clock а в диструкторе вывести когда отработала программа
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,917
Записей в блоге: 1
07.08.2013, 18:16     Конструктор и деструктор #2
Какие трудности? Что за программа? Сам то какие-то наработки приготовил?
Anastasiya1
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 77
07.08.2013, 18:19  [ТС]     Конструктор и деструктор #3
Незнаю даже с чего начать, не понимаю
vodilawofer
29 / 27 / 2
Регистрация: 27.09.2012
Сообщений: 123
07.08.2013, 18:24     Конструктор и деструктор #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <time>
class b
{
time_t timeAppStart;
time_t timeAppStop;
b()
{
time(&timeAppStart);
}
~b()
{
time(&timeAppStop);
}
}
примерно так
Anastasiya1
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 77
07.08.2013, 18:56  [ТС]     Конструктор и деструктор #5
не то(

Добавлено через 28 минут
А в главной ф-ии у нас что?
alex1392
31 / 31 / 3
Регистрация: 24.07.2013
Сообщений: 187
07.08.2013, 19:09     Конструктор и деструктор #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <time.h>
#include <Windows.h>
using namespace std;
void main()
{    time_t t;
    time_t off;
    t = time(NULL);
    Sleep(3000);
    off=time(NULL);
    cout<<off-t<<endl;
}
Осталось запехнуть все это в класс
Тоесть есть у нас некая переменная храняшяя интовое значение мы записываем в нее при старте проги t = time(NULL);
при завершении off=time(NULL);
cout<<off-t<<endl;

если нужно можно выводить годы дни часы минуты все как додумаете )
Croessmah
Модератор
Эксперт CЭксперт С++
12890 / 7276 / 811
Регистрация: 27.09.2012
Сообщений: 17,975
Записей в блоге: 2
Завершенные тесты: 1
07.08.2013, 19:24     Конструктор и деструктор #7
Anastasiya1, пост #4 как раз то. Только в деструктор еще добавьте вывод информации.
В самой программе создайте глобальный объект данного класса - его конструктор вызовется до main, а деструктор после выхода из main
Anastasiya1
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 77
07.08.2013, 19:40  [ТС]     Конструктор и деструктор #8
Можете показать как это сделать, впервые работаю с классами

Добавлено через 2 минуты
не поняла(

Добавлено через 9 минут
????
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6411 / 3050 / 300
Регистрация: 04.12.2011
Сообщений: 8,263
Записей в блоге: 3
07.08.2013, 19:42     Конструктор и деструктор #9
Anastasiya1, это страшненько :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
using namespace std;
#include <time.h>
 
class b
{
public:
time_t timeAppStart;
time_t timeAppStop;
time_t timeOfAction;
void action(){
time_t timeAppWork=timeAppStart;
while (timeAppWork<timeAppStop){
time(&timeAppWork);
system("cls");
cout<<"Begins at "<<timeAppStart<<" \n\nthe time remain is "<<timeAppStop-timeAppWork<<endl;
}
}
 
b(time_t timeOfAction_)
:timeOfAction(timeOfAction_)
{
timeAppStop = time(&timeAppStart) + timeOfAction;
action();
}
~b()
{
time(&timeAppStop);
cout<<endl<<"Stoped at "<<timeAppStop<<endl;
}
};
void lauchit_now(time_t  timetowork){
b act(timetowork);
}
int main()
{
 lauchit_now(5);
system("pause");
cout<<endl<<endl;
  return 0;
}
Croessmah
Модератор
Эксперт CЭксперт С++
12890 / 7276 / 811
Регистрация: 27.09.2012
Сообщений: 17,975
Записей в блоге: 2
Завершенные тесты: 1
07.08.2013, 19:44     Конструктор и деструктор #10
Как вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include <ctime>
#include <vector>
 
 
class B {
   time_t timeAppStart ;
   time_t timeAppStop ;
public :
   B ( ) {
      time( & timeAppStart ) ;
   }
   ~B ( ) {
      time( & timeAppStop ) ;
      std::cout << "Time : " << timeAppStop - timeAppStart << std::endl ;
   }
} ;
 
 
B g_Obj ;
 
 
int main ( ) {
   std::vector < int > vec ;
   std::cout << "Input numbers -> " ;
   while ( true ) {
      int x ;
      std::cin >> x ;
      if ( x == 0 )
         break ;
      vec.push_back ( x ) ;
   }
}
P.S. только это еще страшнее
Anastasiya1
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 77
07.08.2013, 19:51  [ТС]     Конструктор и деструктор #11
Что делает ф-ия action?

Добавлено через 3 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
 
int main ( ) {
   std::vector < int > vec ;//что это?
   std::cout << "Input numbers -> " ;
   while ( true ) {
      int x ;
      std::cin >> x ;
      if ( x == 0 )
         break ;
      vec.push_back ( x ) ;
   }
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6411 / 3050 / 300
Регистрация: 04.12.2011
Сообщений: 8,263
Записей в блоге: 3
07.08.2013, 19:51     Конструктор и деструктор #12
Цитата Сообщение от Anastasiya1 Посмотреть сообщение
Что делает ф-ия action?
Скомпилировали и запустили?
Anastasiya1
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 77
07.08.2013, 19:56  [ТС]     Конструктор и деструктор #13
Цитата Сообщение от IGPIGP Посмотреть сообщение
Скомпилировали и запустили?
ошибки:
\00000\main.cpp||In member function 'void b::action()':|
\00000\main.cpp|15|error: 'system' was not declared in this scope|
\00000\main.cpp||In function 'int main()':|
\00000\main.cpp|38|error: 'system' was not declared in this scope|
||=== Build finished: 2 errors, 0 warnings ===|

Добавлено через 1 минуту
можно ли как нибудь попроще?
VLK
193 / 162 / 12
Регистрация: 05.05.2013
Сообщений: 1,222
07.08.2013, 19:59     Конструктор и деструктор #14
Цитата Сообщение от Anastasiya1 Посмотреть сообщение
можно ли как нибудь попроще?
оо.., наконец то прозвучало это слово.. а вы тут всякие векторы суете..

А можно поконкретнее узнать что должна делать программа, она должно выводить сколько сейчас времени или она должна выводить сколько времени работает программа?
Anastasiya1
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 77
07.08.2013, 20:01  [ТС]     Конструктор и деструктор #15
Цитата Сообщение от VLK Посмотреть сообщение
оо.., наконец то прозвучало это слово.. а вы тут всякие векторы суете..

А можно поконкретнее узнать что должна делать программа, она должно выводить сколько сейчас времени или она должна выводить сколько времени работает программа?
Сколько времени работает программа.Я совсем уже запуталась.
Croessmah
Модератор
Эксперт CЭксперт С++
12890 / 7276 / 811
Регистрация: 27.09.2012
Сообщений: 17,975
Записей в блоге: 2
Завершенные тесты: 1
07.08.2013, 20:02     Конструктор и деструктор #16
Цитата Сообщение от Anastasiya1 Посмотреть сообщение
можно ли как нибудь попроще?
Чем мой страшный вариант не устроил?
Anastasiya1
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 77
07.08.2013, 20:05  [ТС]     Конструктор и деструктор #17
Цитата Сообщение от Croessmah Посмотреть сообщение
Чем мой страшный вариант не устроил?
Я не поняла что вы использовали в главной ф-ииvector
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
07.08.2013, 20:08     Конструктор и деструктор #18
Вектор тут просто как контейнер, его на смом то деле можно было бы и убрать, пользователь, Croessmah, обрабатывает ввод чисел в бесконечном цикле, до тех пор пока не введете 0, а дальше сработает дестркутор вашего класса
Croessmah
Модератор
Эксперт CЭксперт С++
12890 / 7276 / 811
Регистрация: 27.09.2012
Сообщений: 17,975
Записей в блоге: 2
Завершенные тесты: 1
07.08.2013, 20:08     Конструктор и деструктор #19
Цитата Сообщение от Anastasiya1 Посмотреть сообщение
Я не поняла что вы использовали в главной ф-ииvector
Да что угодно там напишите, в данном случае просто примерчик небольшой "полезной" программки
Цитата Сообщение от Anastasiya1 Посмотреть сообщение
используя конструктор и деструктор.В конструкторе используем ф-ию clock а в диструкторе вывести когда отработала программа
Вот с функцией clock ( ) :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <ctime>
#include <cstdlib>
 
 
class B {
   time_t timeAppStart ;
public :
   B ( ) {
      timeAppStart = clock ( ) ;
   }
   ~B ( ) {
      std::cout << "Time : " << static_cast < double > ( clock ( ) - timeAppStart ) / CLOCKS_PER_SEC << " sec." << std::endl ;
   }
} ;
 
 
B g_Obj ;
 
 
int main ( ) {
   system ( "pause" ) ;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.08.2013, 20:12     Конструктор и деструктор
Еще ссылки по теме:

C++ С++. Конструктор, деструктор
Конструктор, деструктор C++
Конструктор и деструктор C++
Конструктор и деструктор C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Anastasiya1
0 / 0 / 0
Регистрация: 21.03.2013
Сообщений: 77
07.08.2013, 20:12  [ТС]     Конструктор и деструктор #20
Спасибо но все это не то!
Yandex
Объявления
07.08.2013, 20:12     Конструктор и деструктор
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru