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

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

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

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

21.01.2014, 01:25. Просмотров 314. Ответов 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;
}
Возник вопрос: как обьявить три конструктора?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2014, 01:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как реализовать набор конструкторов и деструкторов (C++):

Вектор классов. Число конструкторов элементов меньше числа деструкторов. Как так ? - C++
Добрый день. Разбираюсь с stl с++11 в частности с векторами. Имеем простейший код в котором просто заполняем вектор классами контактов: ...

Правильное использование конструкторов и деструкторов - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; class Worker {public: ...

Задание с использованием конструкторов и деструкторов - C++
Нужна ваша помощь. Само задание: Разработать класс - СТУДЕНТ. В закрытой части определить данные: фамилия, номер зачетной книжки,...

Порядок вызова конструкторов/деструкторов - C++
Вопрос чисто теоретический. Попробую сформулировать, не ругайте если получится коряво. Например, есть некий класс для писанины в лог,...

Наследование - вызов конструкторов и деструкторов - C++
Делаю два класса - предок и потомок: class class_1_type { private: int t; public: class_1_type(int t_) { t = t_; cout &lt;&lt;...

Разработка классов, создание конструкторов и деструкторов - C++
Здравствуйте, помогите решить следующее задание: Постpоить класс для pаботы со cтpоками. Класс должен включать следующие поля: массив...

2
_script_
170 / 138 / 34
Регистрация: 01.05.2012
Сообщений: 414
21.01.2014, 01:28 #2
Цитата Сообщение от FSC Посмотреть сообщение
как обьявить три конструктора?
так же как и один)
только они должны отличаться набором параметров)
Конструкторов может быть много)
1
MrGluck
Модератор
Эксперт CЭксперт С++
7496 / 4612 / 694
Регистрация: 29.11.2010
Сообщений: 12,626
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 минуты
Кстати, прошу обратить внимание на список инициализации в конструкторе. Практически всегда советую использовать именно его т.к. создание переменных совмещено с инициализацией.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2014, 01:40
Привет! Вот еще темы с ответами:

Вызов конструкторов/деструкторов при наследовании - C++
Объясните пожалуйста, как получается вывод на экран 2531 #include &lt;iostream&gt; class A { public: A(int n = 2) : m_i(n) {...

Ошибки в программе с использованием конструкторов/деструкторов - C++
Приветы Есть код: #include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;stdlib.h&gt;

Вызов лишних конструкторов и деструкторов в std::vector - C++
почему вызывает лишние конструкторы и вообще делает не то, что ожидаешь class S { public: int x; S() { cout &lt;&lt; &quot;cons&quot; &lt;&lt; endl; } ...

Оценить правильность использования конструкторов, деструкторов в коде - C++
Всем доброго времени суток. Не могли бы вы оценить правильность использования конструкторов,деструкторов и динамического выделения памяти...


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

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

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