Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
AVATAR
9 / 9 / 6
Регистрация: 27.07.2014
Сообщений: 266
1

Класс Time, конструкторы с параметрами "содержит более одного конструктора по умолчанию"

16.10.2014, 20:57. Просмотров 247. Ответов 0
Метки нет (Все метки)

Есть такая, еще не дописанная программа. В классе объявлен конструктор с параметром "Time(int h=0,int m=0);". Почему, если я в аргументах h=0 - присваиваю ноль, то в файле методов при объявление объекта - "Time sum;" - выделяется красным и пишет, мол "содержит более одного конструктора по умолчанию".

А если --- Time(int h,int m=0); // h не присваиваю ноль, то проблем нету... подскажите, чего я упускаю ?)


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//header.h
class Time
    {
    private:
        int hours;
        int minutes;
    public:
        Time();
        Time(int h=0,int m=0);
        void AddMin(int m);
        void AddHr(int h);
        void Reset(int h=0,int m=0);
        Time Sum(const Time &t) const;
        void Show() const;
    };
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
#include<iostream>
#include"header.h"
 
Time::Time()
    {
        hours=minutes=0;
    }
Time::Time(int h,int m)
    {
        hours=h;
        minutes=m;
    }
void Time::AddHr(int h)
    {
        hours+=h;
    }
 
void Time::AddMin(int m)
    {
        minutes+=m;
        hours+=minutes/60;
        minutes%=60;
    }
void Time::Reset(int h,int m)
    {
        hours=h;
        minutes=m;
    }
Time Time::Sum(const Time&t) const
    {
        Time sum;
        sum.minutes=hours+t.hours+sum.minutes/60;
 
    }
Добавлено через 11 минут
Хотя вроде дошло, //Time() == Time(int h=0,int m=0); - они равны по сути - второй одновременно конструктор по умолчанию, поэтому компилятор ругается на одинаковые конструкторы)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2014, 20:57
Ответы с готовыми решениями:

Класс содержит более одного конструктора по умолчанию
Есть класс Abonent Как мне создать массив объектов с контруктором по...

Класс содержит более одного конструктора по умолчанию
Имеется класс: class ControlObject { private: string productsFilename;...

Не могу разобраться с заданием "Создайте класс Time с конструкторами Time(), Time( int hour)......"
/* Создайте класс Time с конструкторами Time(), Time( int hour), Time(int...

Написать класс «массив» (В классе реализовать следующие методы: конструкторы (по умолчанию, с параметрами,)
помогите пожалуйста! необходимо: 1. Написать класс «массив». 2. В классе...

Класс "Время". Двусмысленность между time и std:time(long*)
Здравствуйте. Дали код, сказали есть проблема(скриншот):...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2014, 20:57

Конструктор Шредингера "нет подходящего конструктора по умолчанию", хотя он есть
собственно, код. на 156-й строке ( cont(circi);) ругается на отсутствие...

Visual жалуется на конструктор "Error C2512: нет подходящего конструктора по умолчанию"
Привет, мне Visual C++ выдал такие ошибки делаю все как в уроке,...

Класс "Задание" - Перенос "выполненного" задания из одного списка в другой
Вопрос из &quot;базового курса&quot;. Код: #include&lt;iostream&gt; using namespace std;...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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