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

Неявное преобразование типа - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти тройку чисел из множества http://www.cyberforum.ru/cpp-beginners/thread533787.html
Найти тройку чисел из множества заданного массивами x,y,z размерности n>=10 для которой площадь треугольника со сторонами определяемыми этой тройкой,будет минимальна.С++
C++ Формируем во внешнем файле матрицу 100х100 случайным образом. Нужно сделать следующую задачу: Формируем во внешнем файле матрицу 100х100 случайным образом. Файл закрываем. Пользователь задает параметр сортировки: 1 - пузырьковая 2 - вставками ... http://www.cyberforum.ru/cpp-beginners/thread533784.html
C++ Вывести график функции
Вывести график функции: y= 10/(1+x*x) диапазон изменения аргумента, количество точек графика 30. вывести значения аргумента Х, значения функции Y в виде таблицы, max и min функции:
C++ Ввести телефонный код райцентра. Вывести его название.
Создать программу, которая выполняет следующие действия: користуач выбирает из списка значение, в результате чего на экране "является краткая характеристика выбранного значения и соответствующее ему...
C++ Создать приложение для решения связи задачи http://www.cyberforum.ru/cpp-beginners/thread533751.html
Цены на два вида товаров выросли на р процентов. Вывести старые и новые цены
C++ Размер внешнего глобального массива У меня возник такой вопрос : Есть глобальный массив в одном файле: //1.cpp int arr = {4,6,0,1,2}; Есть код в другом файле, его использующий: //2.cpp #include <iostream> using namespace... подробнее

Показать сообщение отдельно
VladSharikov
22 / 22 / 1
Регистрация: 02.12.2010
Сообщений: 824

Неявное преобразование типа - C++

29.03.2012, 15:02. Просмотров 919. Ответов 6
Метки (Все метки)

Привет. Решаю задачу, не могу решить проблему.

Есть класс 'time' и производный от него класс 'interval'.
1 - содержит поля h, m, s, основные методы работы, конвертации и т.п.
2 - наследует все поля класса 'time'.
Принцип работы такой. Заполняем 2 объекта класса время, передаем в функцию класса интервал, в ней высчитываем разницу между двумя моментами времени (переводим все в секунды, вычитаем по модулю), переводим обратно в часы, минуты, секунды и присваиваем их полям класса интервал.

на примере так.
Базовый и производный класс.
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
class time {
protected:
    int hour,
                 minute,
                 second;
    int all;
    int part;
    bool clock_system; // true - 24, false - 12
public:
    // methods
    void input_f1();
    void output_f1();
    void show_f1();
    void convert_to_f1();
    
    void input_f2();
    void output_f2();
    void show_f2();
    void convert_to_f2();
 
    bool get_format();
    int get_all();
 
 
};
 
 
class Interval: public time {
    // methods
public:
    void find(time left, time right);
};
Функция, которая ищет сам промежуток.
C++
1
2
3
4
5
6
void Interval::find(time left, time right) {
    all = abs(left.get_all()-right.get_all());
    hour = all/3600;
    minute = all%hour;
    second = all%60;
}
Программа посчитает hour, но на minute запорется (просто выдаст сообщение о невозможности продолж. работы программы предложит отправлять или не отправлять отчет). Как решить? Я считаю что это проблема с типами.

Изначально h, m, s определил как unsigned int, переменная all должна быть long int (условие задачи), вчера нифига не заработало все переписал под int, все равно zero. Может со стороны увидите?

В теории все должно работать на этих 4-5 строках:
C++
1
2
3
4
5
6
7
8
9
10
int main() {
    time l, r; // объяв. объекты класса время
    Interval o; // объяв. объект класса интервал времкени
    
    l.input_f2(); // ввели первый момент
    r.input_f2(); // ввели второй момент
 
    o.find(l, r); // нашли интервал между моментам
    o.output_f2(); // вывели интервал
}
Программа останавливается в ф-ии find на 4 строке.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru