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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 74, средняя оценка - 4.85
sanik
1 / 1 / 0
Регистрация: 17.10.2009
Сообщений: 12
#1

Зачем нужен конструктор? - C++

09.11.2009, 13:29. Просмотров 10314. Ответов 8
Метки нет (Все метки)

Всем доброго дня.
Ребят такая проблема объясните мне на пальцах для чего нужен конструктор в классах. Я уже столько толмудов перерыл но однозначного ответа так и не нашел везде по разному пишут и через сопли.
Зарнание спасибо.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2009, 13:29     Зачем нужен конструктор?
Посмотрите здесь:

Зачем нужен конструктор переноса? - C++
Зачем нужен конструктор переноса если тоже самое можно реализовать в обычном конструкторе копирования. Ну вот пример: ...

Объясните, зачем в коде нужен явный конструктор копирования - C++
Добрый день, хочу понять код, почему тут обезательно надо явный конструктор копирования? #include <iostream> using namespace...

Зачем нужен конструктор объекта ostringstream (строковый поток который) с двумя аргументами? - C++
От него всё равно толку как от быка молока. А вроде как предназначен для записи чего-то там в строку... #include <string> #include...

Список инициализации в конструктор C++11. Зачем? - C++
Обьясните зачем в с++11 сделали возможность инициализировать данные м помощью списка {} ? было вот так: CO o(1, 2, 3); ...

Зачем возвращать конструктор копирование? - C++
Добрый день. Первый вопрос в заголовке темы. Второй - где это можно применить. Спасибо. #include <iostream> class MyBase { ...

Зачем нужны конструктор и деструктор класса? - C++
вот задание: Пользовательский класс Х должен содержать необходимые элементы-данные, которые создаются в динамической области памяти....

Зачем вызывается конструктор при объявлении указателя на класс - C++
Не знаю, правильно или нет назвал тему... Вот такая ситуация понятна: int * pHeap = new int; *pHeap = 7; Здесь мы выделяем в...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HIMen
4129 / 1378 / 39
Регистрация: 12.04.2009
Сообщений: 2,346
09.11.2009, 13:46     Зачем нужен конструктор? #2
чтобы инициализировать поля класса
RazorQ
577 / 344 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
09.11.2009, 14:11     Зачем нужен конструктор? #3
Конструктор - назвнание говорит само за себя. Вызывается при создании нового объекта. Т.к. поля (переменные, кому как нравиться) нельзя инициализировать непосредственно в объявлении класса, то конструктором часто пользуются для этих целей. Более того, в этом случае мы получаем более гипкий способ инициализации переменных.
sanik
1 / 1 / 0
Регистрация: 17.10.2009
Сообщений: 12
09.11.2009, 14:15  [ТС]     Зачем нужен конструктор? #4
Так он нужен только для инициализации того что находится в классе и все на этом его фунции заканчиваются?
RazorQ
577 / 344 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
09.11.2009, 14:16     Зачем нужен конструктор? #5
Он подготавливает объект для нормальной работы. А что ты от него ещё хочешь?
patriot2008
72 / 72 / 4
Регистрация: 04.12.2008
Сообщений: 463
09.11.2009, 14:45     Зачем нужен конструктор? #6
Цитата Сообщение от sanik Посмотреть сообщение
Так он нужен только для инициализации того что находится в классе и все на этом его фунции заканчиваются?
Инициализация и выделение памяти полям класса - это основные функции конструктора.
sanik
1 / 1 / 0
Регистрация: 17.10.2009
Сообщений: 12
09.11.2009, 15:02  [ТС]     Зачем нужен конструктор? #7
Спрошу немного по другому. Когда конструктор в классе не указан явно то он создается по умолчанию. А в каком случае надо создавать его явно? Какие у него параметры есть которых нету в конструкторе созданом по умолчанию?
M128K145
Эксперт С++
8284 / 3503 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
09.11.2009, 15:26     Зачем нужен конструктор? #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
sanik, если ты в классе не опишешь хотя бы один конструктор, то он при такой записи
C++
1
A *a = new A();
вызовется автоматически и установит значения всех полей значениями по умолчанию для их типов и тогда его описывать явно не надо. Если же тебе надо чтобы при таком создании объекта полям присваивались нужные тебе значения, то ты описываешь свой конструктор. Они бывают нескольких видов(например для класса A):
C++
1
2
3
4
5
class A
{
public:
    int a;
}
1) без параметров
C++
1
A(){ a = 5; }
2) с параметрами
C++
1
A(int b){ a = b; }
3) копирования
C++
1
A(A *b){ a = b->a; }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.11.2009, 15:34     Зачем нужен конструктор?
Еще ссылки по теме:

Зачем в программе 2 раза вызывать конструктор для одного объекта - C++
Здравствуйте, специалисты! Попалась в руки программа, похожая на то что мне надо сделать, начал разбираться и недоумеваю - зачем два раза...

Зачем нужен malloc? - C++
malloc - что это? И зачем оно нужно?

Объяснить зачем нужен i - C++
#include <iostream> #include <conio.h> using namespace std; int main() { cout << "Enter chislo and stepen: "; ...

Зачем нужен полиморфизм - C++
читал про то что такое полиморфизм, виртуальные методы и тд, вот промер из статьи про виртуальный диструктор class base { ...

Зачем нужен inline - C++
Скажите пожалуйста, зачем нужна команда inline? Изучаю классы, и там говорится мимолётом, что эта функция повысит эффективность, но так и...


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

Или воспользуйтесь поиском по форуму:
sanik
1 / 1 / 0
Регистрация: 17.10.2009
Сообщений: 12
09.11.2009, 15:34  [ТС]     Зачем нужен конструктор? #9
M128K145, Вооо то что нужно, спасибо огромное терь все встало на свои места.
Yandex
Объявления
09.11.2009, 15:34     Зачем нужен конструктор?
Ответ Создать тему
Опции темы

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