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

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

Войти
Регистрация
Восстановить пароль
 
2ima
☆ Форумчанин(FSC)☆
910 / 289 / 9
Регистрация: 28.04.2013
Сообщений: 2,375
Записей в блоге: 10
Завершенные тесты: 1
#1

Как реализовать набор конструкторов и деструкторов - C++

21.01.2014, 01:25. Просмотров 283. Ответов 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
#include <iostream>
 
class Time  //начало объявления класса
{
public:     //начало раздела public
    Time(int sec);   //конструктор
    ~Time();                    //деструктор    
private:                    //начало раздела private
    int ntime;               //переменные члены
};
 
//Конструктор класса Time
Time::Time(int iTime)
{
    ntime = iTime;
    iTime=60;
}
Time::~Time()       //деструктор, не делает ничего
{
}
int main()
{
 
    std::cout<<"This code shows the work of constructor and destructor... ";
    return 0;
}
Возник вопрос: как обьявить три конструктора?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2014, 01:25     Как реализовать набор конструкторов и деструкторов
Посмотрите здесь:

C++ Оценить правильность использования конструкторов, деструкторов в коде
C++ Простая прога на использование конструкторов и деструкторов в с++ не работает ( не пойму почему (
C++ Правильное использование конструкторов и деструкторов
Разработка классов, создание конструкторов и деструкторов C++
C++ Создание и разрушение объектов класса, исследование вызовов конструкторов и деструкторов
C++ Порядок вызова конструкторов/деструкторов
C++ Вызов конструкторов/деструкторов при наследовании
Классы и обьекты в С++. Выполнить исследование вызовов конструкторов и деструкторов C++
Задание с использованием конструкторов и деструкторов C++
C++ Наследование - вызов конструкторов и деструкторов
Вектор классов. Число конструкторов элементов меньше числа деструкторов. Как так ? C++
C++ Вызов лишних конструкторов и деструкторов в std::vector

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
_script_
169 / 137 / 34
Регистрация: 01.05.2012
Сообщений: 414
21.01.2014, 01:28     Как реализовать набор конструкторов и деструкторов #2
Цитата Сообщение от FSC Посмотреть сообщение
как обьявить три конструктора?
так же как и один)
только они должны отличаться набором параметров)
Конструкторов может быть много)
MrGluck
Ворчун
Эксперт CЭксперт С++
6634 / 3825 / 502
Регистрация: 29.11.2010
Сообщений: 10,111
21.01.2014, 01:40     Как реализовать набор конструкторов и деструкторов #3
Цитата Сообщение от FSC Посмотреть сообщение
Возник вопрос: как обьявить три конструктора?
аналогично перегрузке функции.
Только хотел бы уточнить по заголовку темы: деструктор может быть только один.
Изначально комилятор автоматически генерирует конструктор по-умолчанию, копирующий конструктор и, в случае С++11, move-конструктор. Если мы явно описываем какой-либо конструктор, то тот, что по умолчанию не создается.
Вот три конструктора по вашему варианту:
C++
1
2
3
4
5
6
7
8
9
class Time  //начало объявления класса
{
public:     //начало раздела public
    Time() : ntime = 0 {}
    Time(const int sec) : ntime(sec) {}
    Time(const char *s) : ntime(std::atoi(s)) {} // just for example
private:                
    int ntime;              
};
Деструктор, копирующий конструктор вам самим описывать не нужно так как не идет работа с динамической памятью, подойдет и тех, который компилятор генерирует автоматически.
Итого класс сгенерирует 3 конструктора который вы описали + 1 копирующий создаст сам + возможно еще 1 мув конструктор(С++11).

Добавлено через 2 минуты
Кстати, прошу обратить внимание на список инициализации в конструкторе. Практически всегда советую использовать именно его т.к. создание переменных совмещено с инициализацией.
Yandex
Объявления
21.01.2014, 01:40     Как реализовать набор конструкторов и деструкторов
Ответ Создать тему
Опции темы

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