Форум программистов, компьютерный форум, киберфорум
Наши страницы

работа с указателями и классами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ доступ к конкретным элементам, хранящимся в двух структурах(одна вложена в другую) http://www.cyberforum.ru/cpp-beginners/thread257115.html
Доброго времени суток всем. Передо мной стоит такая задача - нужно сделать программу, которая бы строила большое количество точек - с различными координатами, и в итоге, разбивала их на определенные...
C++ Метод Ньютона в решении СНАУ РЕбят, помогите с прогой. Нужна прога которая решает СНАУ методом Ньютона. Без нее не защищусь. Заранее спасибо. http://www.cyberforum.ru/cpp-beginners/thread257107.html
Массивы C++
задачи на действие с массивами 1)Удаление элемента массива 2)Среднее значение элементов массива 3)Поиск максимального и минимального элемента массива 4)заполнения массивами случайными числами в...
C++ Построить светящийся разными цветами треугольник
построить,светящийся разными цветами треугольник
C++ Даны действительные числа а1, а2, … , а24 http://www.cyberforum.ru/cpp-beginners/thread257046.html
2)Даны действительные числа а1, а2, … , а24. Получить последовательность b1, b2, … , b10, где b1= a1+a2+a3+...+a24 b2= a1^2+a2^2+....+a24^2 ..... a10= a1^10+a2^10+...+a24^10 использовать...
C++ как решеть масив в С++ как переписать отрицательные элементы массива S(12) в массив P? и в двумерном массиве A(n, m) расположить под главной диагональю единицы? кто знает помогите начинаещему програмисту! подробнее

Показать сообщение отдельно
TheAthlete
153 / 153 / 13
Регистрация: 31.08.2010
Сообщений: 535

работа с указателями и классами - C++

14.03.2011, 16:24. Просмотров 581. Ответов 2
Метки (Все метки)

Здравствуйте! Пишу класс для работы с датами, необходимо выполнять различные операции с датами.

Собственно код:

Date.h

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
#ifndef DATE_H
#define DATE_H
 
#include <ctime>
 
class Date {
private:
    int day; // день
    int month; // месяц
    int year; // год
    
    tm* timeinfo;
 
    time_t seconds;
    time_t rawtime;
public:
    Date(): day(0), month(0), year(0) {}
    Date(int d, int m, int y);
    ~Date() { delete timeinfo; }
 
    time_t getSeconds() const { return seconds; }
    tm* getTimeInfo() const { return timeinfo; }
    void printTimeInfo(); // выводим на экран значения структуры timeinfo
};
#endif
Date.cpp

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
#include "Date.h"
#include <iostream>
 
using std::cout;
using std::endl;
 
Date::Date(int d, int m, int y) {
    day = d;
    month = m;
    year = y;
 
    time( &rawtime );
    timeinfo = localtime( &rawtime );
 
    timeinfo->tm_year = y - 1900;
    timeinfo->tm_mon = m - 1;
    timeinfo->tm_mday = d;
 
    seconds = mktime(timeinfo);
}
 
void Date::printTimeInfo() {
    cout << "День: " << timeinfo->tm_mday << endl;
    cout << "Месяц: " << timeinfo->tm_mon + 1 << endl;
    cout << "Год: " << timeinfo->tm_year + 1900 << endl;
    cout << "День недели: " << timeinfo->tm_wday << endl;
    cout << "День года: " << timeinfo->tm_yday + 1 << endl;
}
main.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include "Date.h"
 
using std::cout;
using std::endl;
 
int main() {
            Date data_nach(7, 6, 2002);
    Date data_kon(25, 6, 2002);
 
    data_nach.printTimeInfo();
    cout << "===============" << endl;
    
    data_kon.printTimeInfo();
    cout << "===============" << endl;
 
    return 0;
}
Но столкнулся с небольшой проблемой:

вывод для данной программы будет следующий:
День: 7
...
=======
День: 7
...

т.е. день не меняется, вероятно здесь где-то утечка памяти

А если сделать следующим образом, то все нормально:

C++
1
2
3
4
5
6
7
Date data_nach(7, 6, 2002);
    data_nach.printTimeInfo();
    cout << "===============" << endl;
    
    Date data_kon(25, 6, 2002);
    data_kon.printTimeInfo();
    cout << "===============" << endl;
Вывод:

День: 7
...
=======
День: 25
...

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