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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти тройку чисел из множества http://www.cyberforum.ru/cpp-beginners/thread533787.html
Найти тройку чисел из множества заданного массивами x,y,z размерности n>=10 для которой площадь треугольника со сторонами определяемыми этой тройкой,будет минимальна.С++
C++ Формируем во внешнем файле матрицу 100х100 случайным образом. Нужно сделать следующую задачу: Формируем во внешнем файле матрицу 100х100 случайным образом. Файл закрываем. Пользователь задает параметр сортировки: 1 - пузырьковая 2 - вставками 3 - быстрая 4 - слиянием (формируем в другом файле матрицу 50х50 случайным образом) 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 std; подробнее

Показать сообщение отдельно
Merovingian
54 / 54 / 5
Регистрация: 24.09.2011
Сообщений: 149
29.03.2012, 17:26     Неявное преобразование типа
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
using std::ostream;
 
class time
{
protected:
    int hours;
    int minutes;
    int seconds;
    double inSeconds;
    bool part;
    bool system; // true - 24; false - 12
public:
    time(){};
    time(int, int, int, bool);
    
    int getH() const{return hours;}
    int getM() const{return minutes;}
    int getS() const{return seconds;}
    bool getSys() const{return system;}
    double getInSeconds() const{ return inSeconds;}
    friend ostream& operator<<(ostream&, const time&);
    
    void convert();
};
 
ostream& operator<<(ostream& cout_, const time& obj)
{
    cout_ << obj.hours<<":"<<obj.minutes<<":"<<obj.seconds;
    if(!obj.system)
        if(obj.part==true)
            cout_ << " AM";
        else
            cout_ << " PM";
    return cout_;
}
 
time::time(int h, int m, int s, bool sys)
{
    h = h%24;
    inSeconds = h * 3600 + m * 60 + s;
    if(sys == false)
    {
        h = h%12;
        if(h >= 12)
            part = true;
        else
            part = false;
    }
    hours = h;
    minutes = m%60;
    seconds = s%60;
    system = sys;
}
 
void time::convert()
{
    if(system) //24
    {
        hours>=12 ? part=true : part = false;
        hours = hours%12;
    }
    else //12
    {
        part==true;
        hours = 12+hours;
    }
    system = system^1;
}
 
class interval: public time
{
public:
    interval(const time,const time);
    friend ostream& operator<<(ostream&, const interval&);
};
 
interval::interval(time l, time r): time()
{
    hours = abs(l.getH() - r.getH());
    minutes = abs(l.getM() - r.getM());
    seconds = abs(l.getS() - r.getS());
}
 
ostream& operator<<(ostream& cout_, const interval& obj)
{
    cout_ << obj.hours<<":"<<obj.minutes<<":"<<obj.seconds;
    return cout_;
}
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    time t(16,15,15,1);
    cout<<t<<endl;
    t.convert();
    cout<<t<<endl;
    time t2(15,14,14,1);
    interval i(t,t2);
    cout<<i;
    system("pause");
    return 0;
}
Доработайте!
Есть такая проблема как метод convert, он наследуется. А конвертировать в интервале нечего. Нужно написать либо отдельный класс, который будет конвертить, либо как то наверное без наследования обойтись. + double inSeconds; bool part; bool system; - не нужны для class interval.

Может кто-то подскажет кроме меня как лучше сделать?
 
Текущее время: 14:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru