Russian Qt Forum

Программирование => С/C++ => Тема начата: Chester от Март 18, 2010, 16:44



Название: конструктор с параметрами
Отправлено: Chester от Март 18, 2010, 16:44
доброго времени суток!!!
Хотелось бы у вас совета спросить...вот если я создаю в классе конструктор с параметрами... нужно ли мне создавать конструктор по умолчанию (без параметров), если не собираюсь таковой использовать ;))
Кому не трудно,тветьте пожалуйста.. заранее спасибо!!


Название: Re: конструктор с параметрами
Отправлено: hackoff от Март 18, 2010, 16:47
не нужно


Название: Re: конструктор с параметрами
Отправлено: alexman от Март 18, 2010, 16:50
Если только для того, чтобы проинициализировать поля класса...


Название: Re: конструктор с параметрами
Отправлено: Igors от Март 18, 2010, 16:51
Иногда бывает нужно, напр. если такие объекты помещаются в vector


Название: Re: конструктор с параметрами
Отправлено: niXman от Март 18, 2010, 16:53
пустой конструктор написать не сложно.
пусть он не используется, но и не помешает.


Название: Re: конструктор с параметрами
Отправлено: alexman от Март 18, 2010, 16:55
Даже ради читабельности кода он не помешает!


Название: Re: конструктор с параметрами
Отправлено: lit-uriy от Март 18, 2010, 16:58
>>Иногда бывает нужно, напр. если такие объекты помещаются в vector
конструктор по умолчанию компилятор сам создаст, для контейнеров важно, чтобы он был в public-области, а не private, как у QWidget'ов


Название: Re: конструктор с параметрами
Отправлено: f-r-o-s-t от Март 18, 2010, 17:19
>>Иногда бывает нужно, напр. если такие объекты помещаются в vector
конструктор по умолчанию компилятор сам создаст, для контейнеров важно, чтобы он был в public-области, а не private, как у QWidget'ов

Если есть конструктор с параметрами, то не создаст.
Действительно если есть такая необходимость то нужно создать, как в примере с контейнерами.


Название: Re: конструктор с параметрами
Отправлено: Amigo_sa от Март 18, 2010, 17:29
>>Иногда бывает нужно, напр. если такие объекты помещаются в vector
конструктор по умолчанию компилятор сам создаст, для контейнеров важно, чтобы он был в public-области, а не private, как у QWidget'ов
Так же в созданных по умолчанию конструкторах все указатели, если таковые используются, будут не проинициализированы, поэтому в этом случае его нужно написать руками.


Название: Re: конструктор с параметрами
Отправлено: lit-uriy от Март 18, 2010, 17:41
>>Если есть конструктор с параметрами, то не создаст.
Хм, не знал. Видимо ещё не нарвался на связанную с этим ошибку компилятора.


Название: Re: конструктор с параметрами
Отправлено: Chester от Март 18, 2010, 18:27
Спасибо всем за ответы!!!

>>Иногда бывает нужно, напр. если такие объекты помещаются в vector
конструктор по умолчанию компилятор сам создаст, для контейнеров важно, чтобы он был в public-области, а не private, как у QWidget'ов

Если есть конструктор с параметрами, то не создаст.
Действительно если есть такая необходимость то нужно создать, как в примере с контейнерами.


Вот поэтому и спрашиваю  :)... я работаю с БД, и есть формочка,которая отображает некую таблицу из БД, связанную с главной табличкой по ID. И в конструкторе передается этот ID,для отображения данных по конкретному объекту. Просто без этого параметра формочка теряет всякий смысл... Если только она будет просто рисоваться без всяких данных.
Просто боюсь,что без конструктора по умолчанию может не корректно работатать будет класс...


Название: Re: конструктор с параметрами
Отправлено: BRE от Март 18, 2010, 18:34
Вот поэтому и спрашиваю  :)... я работаю с БД, и есть формочка,которая отображает некую таблицу из БД, связанную с главной табличкой по ID. И в конструкторе передается этот ID,для отображения данных по конкретному объекту. Просто без этого параметра формочка теряет всякий смысл... Если только она будет просто рисоваться без всяких данных.
Просто боюсь,что без конструктора по умолчанию может не корректно работатать будет класс...
Все будет корректно, не бойся.  :)
Не нужен пустой конструктор, а точнее не возможен (как в твоем случае) - не пиши. Это лучше, чем придумывать костыли, только ради того, что бы написать конструктор по умолчанию.