1 / 1 / 0
Регистрация: 30.05.2017
Сообщений: 54
1

Виды конструкторов

26.10.2017, 18:57. Показов 8988. Ответов 4
Метки нет (Все метки)

Допустим, я создал класс. В нём - три конструктора.

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
class checker
{
    int number;
    int x;
    int y;
 
public:
    //конструктор по умолчанию
    checker()
    {
        number = 0;
        x = 0;
        y = 0;
    };
    //конструктор с параметрами 
    checker(int number, int x, int y)
    {
        this->number = number;
        this->x = x;
        this->y = y;
    }
    //Конструктор копирования
    checker(const checker &obj)
    {
        number = obj.number;
        x = obj.x;
        y = obj.y;
    }
};
Перед каждым конструктором есть комментарий.
Объясните, пожалуйста, четко - соответствует ли название в комментарии с реальным "описанием" конструктора

То есть, нужно ли инициализировать объекты нолями в конструкторе по умолчанию (или как его вообще нужно объявлять?),
почему мы используем стрелки (да, я знаю, что это типа указатель) в конструкторе с параметрами, и что вообще значит этот конструктор, и в чем суть конструктора копирования.

Кому не лень, teach me!))
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.10.2017, 18:57
Ответы с готовыми решениями:

Виды конструкторов
Какие конструкторы существуют в С++? Инфу с вики читал, но почему то все равно ответ не верен. ...

Наследование конструкторов
если при наследовании классов отсутствует конструктор в базовом классе, то что тогда? Помогите,...

Вызов конструкторов
привет почему здесь вызывается только 1 конструктор? #include <iostream> using namespace...

Наследование конструкторов
Здравствуйте! У меня такой вопрос: Как сделать так, чтобы при создании объекта дочернего класса не...

4
2754 / 1908 / 569
Регистрация: 05.06.2014
Сообщений: 5,560
26.10.2017, 19:45 2
Цитата Сообщение от Max_Raptor Посмотреть сообщение
То есть, нужно ли инициализировать объекты нолями в конструкторе по умолчанию (или как его вообще нужно объявлять?),
В новом стандарте можно забивать поля нулями прямо при объявлении. Вот прям так и писать - int x=0.
Цитата Сообщение от Max_Raptor Посмотреть сообщение
почему мы используем стрелки (да, я знаю, что это типа указатель) в конструкторе с параметрами
Потому что у кого-то так плохо с фантазией, что он назвал аргументы конструктора точно также как поля класса. Нет бы скажем, подчеркивание в начало имен подставить (_x, _y, etc).
Цитата Сообщение от Max_Raptor Посмотреть сообщение
и что вообще значит этот конструктор
C++
1
checker object(1,2,3);//он вызывается вот здесь
1
1 / 1 / 0
Регистрация: 30.05.2017
Сообщений: 54
26.10.2017, 20:05  [ТС] 3
Renji, понял.
Если бы я назвал аргументы конструктора по другому (например, с большой буквы), то без указателя можно обойтись?
Теперь уточнение: как правильно объяснить, почему я "забиваю" поля конструктора именно нулями? Что это нам дает?
И можно ли другими числами?
0
2754 / 1908 / 569
Регистрация: 05.06.2014
Сообщений: 5,560
26.10.2017, 21:05 4
Цитата Сообщение от Max_Raptor Посмотреть сообщение
Если бы я назвал аргументы конструктора по другому (например, с большой буквы), то без указателя можно обойтись?
Да. this-> (или checker::) нужно только чтобы различить где аргументы конструктора, где поля класса.
Цитата Сообщение от Max_Raptor Посмотреть сообщение
Теперь уточнение: как правильно объяснить, почему я "забиваю" поля конструктора именно нулями? Что это нам дает?
И можно ли другими числами?
Да, конечно, можно и другими числами. Можно и вообще никакими числами не забивать, просто тогда стартовое значение полей будет взято от балды. Подходит вам значение от балды или нет - вам виднее.
1
1 / 1 / 0
Регистрация: 30.05.2017
Сообщений: 54
26.10.2017, 21:14  [ТС] 5
Renji, спасибо! Очень полезная инфа!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.10.2017, 21:14
Помогаю со студенческими работами здесь

Наследование конструкторов
Здрасти. Такая проблема. У меня есть классы с таким наследованием:...

Наследование конструкторов
Здравствуйте, мне нужно что бы player наследовал конструктор от aobject class aobject { public:...

Наследование конструкторов
Добрый день. Подскажите как правильно осуществить наследование конструктора в двух файлах h и cpp....

Наследование конструкторов
Вопрос по теории наследования: Есть некоторый базовый класс с двумя конструкторами типа паблик,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru