Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.50/16: Рейтинг темы: голосов - 16, средняя оценка - 4.50
45 / 45 / 1
Регистрация: 23.05.2009
Сообщений: 92

Конструктор

29.07.2009, 23:29. Показов 4081. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Конструктор сбрасывающий экземпляр класса.
Что он из себя представляет?
Приведите примеры.
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.07.2009, 23:29
Ответы с готовыми решениями:

Не могу сделать чтобы класс содержал основной конструктор и конструктор копирования
Разработать класс ThreeAngle для работы с плоскими треугольниками. В качестве членов-данных задаются длины трех сторон треугольника. Класс...

Конструктор класса, конструктор копирования запускается не тот который нужен
Есть такой конструктор: Neuron::Neuron(int iType_activation_funk) { this->iType_act = iType_activation_funk; switch...

this(Всегда ли вызывается конструктор при не явной передачи объекта в конструктор)
class Test { int i; public: void test(int i) { this -> i = i; } }; Конструктор Test::Test всегда вызывается...

32
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
30.07.2009, 01:15
Студворк — интернет-сервис помощи студентам
я думаю что имеется в виду обнуление элементов класса

Добавлено через 33 секунды
... хотя конечно пути женской логики неисповедимы...
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3618 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
30.07.2009, 01:16
конструктор, который создает обьект триггера в сброшеном состоянии
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
30.07.2009, 01:17
Цитата Сообщение от M128K145 Посмотреть сообщение
конструктор (по умолчанию сбрасывает экземпляр класса);
это просто конструктор по умолчанию: т.е. конструктор без параметров, который инициализирует свойства класса значениями по-умолчанию.

Добавлено через 1 минуту 1 секунду
Пример:

C++
1
2
3
4
5
6
7
8
class Foo
{
private:
   int a;
   int b;
public:
   Foo(): a(0), b(0) {}
};
0
45 / 45 / 1
Регистрация: 23.05.2009
Сообщений: 92
30.07.2009, 01:31  [ТС]
[QUOTE=Monte-Cristo;228394]это просто конструктор по умолчанию: т.е. конструктор без параметров, который инициализирует свойства класса значениями по-умолчанию.

Добавлено через 1 минуту 1 секунду
Пример:
Я так понимаю для того, чтобы сбросить экземпляр класса должен быть уже создан, а если в параметрах указан экземпляр этого же класса он уже не является простым конструктором, а является конструктором копирования. Что такое конструктор по умолчанию я знаю, однако о конструкторе сбрасывающем экземпляр класса никогда не слышал(.
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
30.07.2009, 01:33
Skirmisher, не обязательно копирования. Конструктор копирования создается автоматически, даже если он не указан явно.
0
45 / 45 / 1
Регистрация: 23.05.2009
Сообщений: 92
30.07.2009, 01:49  [ТС]
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
Skirmisher, не обязательно копирования. Конструктор копирования создается автоматически, даже если он не указан явно.
Т.е. если например в параметрах указан экземпляр этого же класса, то это не будет конструктор копирования?
Например: имеется такой код:
C++
1
2
3
4
5
6
Monstr::Monstr(Monstr &monst)
{
     monstr.name="";  //Сбрасываем имя объекта
     monstr.health=100; //Сбрасываем к 100 количество жизней
     monstr.ammo=200; //Сбрасываем к 200 уровень брони
}
C++
1
2
3
4
5
6
7
8
9
10
class Monstr
{
    public:
         char *name;
         int health;
         int ammo;
    public:
         Monstr(char nameStr="Ork", int healthD=100, int ammoD=250){name=nameStr; health=healthD; ammo=ammoD};
         Monstr(Monstr &monstr);
}
Разве не будет считаться метод:
Monstr(Monstr &monstr);
конструктором копирования?
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
30.07.2009, 01:51
Цитата Сообщение от Skirmisher Посмотреть сообщение
конструктором копирования?
нет. это уже конструктор с одним параметром.
0
45 / 45 / 1
Регистрация: 23.05.2009
Сообщений: 92
30.07.2009, 02:36  [ТС]
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
нет. это уже конструктор с одним параметром.
А когда, тогда конструктор класса, содержащий экземпляр своего же класса не является конструктором копирования?

Добавлено через 35 минут 2 секунды
Цитата Сообщение от M128K145 Посмотреть сообщение
конструктор, который создает обьект триггера в сброшеном состоянии
А это что еще за конструктор? Приведи пример пожалуйста.
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3618 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
30.07.2009, 11:31
Skirmisher, где-то так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class Trigger
{
public:
    short c, d, q0, q1;
public:
    Trigger();
};
 
Trigger::Trigger()
{
    c = 0;
    d = 0;
}
Я не силен в схемотехнике, поэтому присвоил по нулю каждому из входов
1
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
30.07.2009, 12:21
Цитата Сообщение от Skirmisher Посмотреть сообщение
А когда, тогда конструктор класса, содержащий экземпляр своего же класса не является конструктором копирования?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
 
class Foo
{
private:
    int a;
    int b;
public:
    Foo(): a(0), b(0) {} // конструктор по-умолчанию
    void Set(int x, int y) { a = x; b = y; }
    void Show() { cout << a << "\t" << b << endl; }
};
 
int main() 
{
    Foo objA;       // активируется конструктор по-умолчанию
    objA.Set(5, 10);
    Foo objB(objA); // активируется конструктор копирования
    objB.Show();
    system("pause");
    return 0;
}
А вообще это спорный вопрос. В одной литературе это называется конструктор копирования по-умолчанию, в другой просто конструктор копирования.
Я же отношусь больше к варианту, что конструктор копирования - это продемонстрированный выше вариант. А если пользователь его перегрузит, я считаю его уже не копированием, так как в перегруженном уже могут выполнятся любые действеия, и копированием даже и не пахнуть.
0
depict1
 Аватар для zim22
281 / 146 / 4
Регистрация: 11.07.2009
Сообщений: 606
30.07.2009, 12:38
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
В одной литературе это называется конструктор копирования по-умолчанию, в другой просто конструктор копирования.
английский рулит. copy constructor
0
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
30.07.2009, 12:40
Вообще-то Стандарт языка, в разделе 12.8 clauses 2 и 4 абсолютно точно и однозначно определяют, что такое есть конструктор копирования и при каких условиях генерируется встроенный конструктор копирования.
1
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
30.07.2009, 12:52
Действительно. Необходимо будет почитать стандарт, так как с оперделниями я сильно не заморачивался

Wiki тоже содержит информацию на эту тему
Конструктором копирования (в англоязычной литературе используется термин copy constructor) называется специальный конструктор в языке программирования C++, применяемый для создания нового объекта как копии уже существующего. Такой конструктор принимает один аргумент: ссылку на копируемый объект.

Обычно компилятор автоматически создает конструктор копирования для каждого класса (известные как неявные конструкторы копирования, т.е. конструкторы копирования, заданные неявным образом), но в некоторых случаях программист создает конструктор копирования, называемый в таком случае явным конструктором копирования (или "конструктором копирования, заданым явным образом"). В подобных случаях компилятор не создает неявные конструкторы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.07.2009, 12:52

Будет ли определен компилятором конструктор по умолчанию, если есть конструктор с дефолтным параметром?
Добрый день, сразу к делу, есть некий класс class some { int x; public: some(int y = 1) : x(y) {} };

Не могу правильно сделать конструктор и конструктор копирования и принадлежность точки с заданными координатами треугольнику
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;windows.h&gt; #include &lt;math.h&gt; #include &lt;algorithm&gt; using...

Создать класс. Написать конструктор по умолчанию, конструктор с параметрами. Перегрузить операции «меньше» и «равно»
Помогите пожалуйста, хоть с одним из заданий. 1. Создать класс. Написать конструктор по умолчанию, конструктор с параметрами....

Можно ли использовать конструктор по умолчанию и конструктор инициализации одновременно?
Можно ли использовать конструктор по умолчанию и конструктор инициализации одновременно?

Конструктор производного класса требует конструктор предка
Выдаёт вот такую вот ошибку: no matching function for call to 'Cube::Cube()' class Cube { protected: int magInt; bool...


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

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru