![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 22.04.2013
Сообщений: 588
|
![]()
Я бы хотел почитать более чотко выложеные правла создания конструктора.
Вроде, конструктор придставляет из сибя аналог функции и пишется так Constrc(int A, double B) {A=55;B=445,78;} Но я вижу примеры и без () после конструктора, и к угодно. И вот, это пример с форума. Вот, вижу что вначале в конструкторе обнуляются переменные, а дальше его рассматривать как второй конструктор? Или продолжение первого?А если второй-функция, то перед ней же нет ни воид, ни чего-то еще. Код:
________ Код нужно оформлять по правилам: тегом [CODE]..[/СODE] (это кнопочка на панели форматирования с решёточкой #) Не забывайте об этом! Модератор. Последний раз редактировалось Stilet; 03.09.2013 в 17:37. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,368
|
![]()
Конструкторов может быть сколько угодно.
У конструкторов нет типа результата, даже void. Из конструкторов можно вызывать методы класса но нельзя вызвать другой конструктор. |
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 31.08.2013
Сообщений: 93
|
![]() Цитата:
Перегруженных функций может быть сколько угодно, они отличаются входными параметрами. Код:
В данном случае целесообразнее было бы объявить один универсальный конструктор, который принимает параметры в любых случаях, указав значения этих параметров в объявлении конструктора. Код:
|
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 03.01.2013
Сообщений: 388
|
![]()
Конструкторы в C++ служат для созддания объекта, т.е выделения памяти для хранения его данных-членов.
Конструктор - это тоде метод, но! он не имеет типа возвращаемого результата. Если он - метод, то его можно и перегрузить. Отличие может выражаться в сигнатуре конструктора (т.е сигнатура конструктора - тип данных его формальных параметров). Существуют, также, списки инициализации конструктора, которые позволяют задать значение данных-членов объекта. Отличие от обыкновенного вызова конструктора в том, что: вызывается стандартный конструктор и сразу же инициализирует данные-члены значениями, заданными в списке инициализации конструктора. Т.е повышается эффективность, без таких списков сначала данные члены были бы проинициализированы стандартным конструктором, а затем - вызывалась бы твоя версия конструктора и ПЕРЕзаписывала значения в ячейках памяти данных-членов объекта, что приводит к снижению эффективности. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 22.04.2013
Сообщений: 588
|
![]()
Спасибо!!!
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 22.04.2013
Сообщений: 588
|
![]()
Я добавил в код функцию вывода, компилятор на ниё ругается, имено на строку, где я в функции обьявил вывод.Посмотрите пожалуста, вобще!
Код:
|
![]() |
![]() |
![]() |
#7 | ||
Пользователь
Регистрация: 31.08.2013
Сообщений: 93
|
![]() Цитата:
Цитата:
После using std::string; добавьте строчку using namespace std; вот и вся проблема. |
||
![]() |
![]() |
![]() |
#8 | |
Форумчанин
Регистрация: 03.01.2013
Сообщений: 388
|
![]() Цитата:
cout - это объект, созданный для записи в него последовательности байтов для последующего вывода в стандартный поток. Он объявлен в пространстве имен - std. Пространство имен представляет собой набор идентификаторов, сгрупированных логически. Для этого достаточно добавить директиву using namespace std; Тогда можно убрать строку - using std::string (используются все идентификаторы string из пространства имен std). |
|
![]() |
![]() |
![]() |
#9 | |
Пользователь
Регистрация: 31.08.2013
Сообщений: 93
|
![]() Цитата:
Единственное о чём можно упомянуть, это сразу привыкать к хорошему тону програмиста, если конечно Вам это нужно. Хорошим тоном считается не только знание языка, грамотное и эффективное использование функций и классов C++, но даже елементарное оформление кода. Просто задумайтесь об этом. Начните хотя бы с форматирования кода отступами, которые гораздо заметнее табуляциями, чем пробелами. Пока Ваш код слишком маленький и маленькие отступы не сильно сбивают Вас с толку, но когда Ваш код разрастется и превратится в тысячи строк, Вы потом сами запутаетесь в блоках вашей программы. И ещё имена переменных, об этом где то статью читал (сейчас уже не помню ссылку). Вроде бы в них нет ничего криминального, Вы програмист, Вам и придумывать эти имена, какие хотите. Но правилом хорошего тона, будет считаться то, что имена этих переменных будут понятны другим програмистам, которые будут читать ваш код... Более того, в именах переменных, не плохо бы ссылаться и на их тип, по этому поводу тоже есть некие правила. То есть если переменная строка, то в вашем случае гораздо "вежлевее" было именовать переменную imya как strName, а переменные intiger можно было именовать как nAge, а не vozrast. Да, да, именно по Английски, а не транслитом. Если хотите програмировать, привыкайте к Английскому языку, хотя бы с переводчиком... Почему Вам не пришло в голову именовать переменные по Русски и Русскими буквами, ведь это не запрещено, более того это возможно. Компилятор запросто проглатывает Кирилицу, так что вся Ваша программа может выглядеть например так: Код:
![]() При том прошу заметить, код прекрасно компилируется и работает. И тем не менее - это сарказм. Не делайте так никогда... ![]() Это конечно мелочи, на работу они не влияют. Я повторюсь: - Это просто признаки хорошего тона, а уж следовать этому хорошему тону или нет, дело Ваше... |
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 22.04.2013
Сообщений: 588
|
![]()
СПАСИБО!!!!!!!!!
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обновление поля формы после создания новой записи создания | romanln2012 | Microsoft Office Access | 2 | 09.08.2012 14:12 |
Подскажыте програму для создания gif-анимаций, которые после создания не теряют четкости | pufystyj | Софт | 1 | 24.02.2011 01:50 |
Автоматическое преобразование на основе первого аргумента конструктора в вызов самого конструктора | jennya | Visual C++ | 8 | 03.10.2010 19:03 |
Создание конструктора | Superlotles | Общие вопросы C/C++ | 5 | 23.05.2010 01:38 |
Правила разделов/главные правила | Alex Cones | О форуме и сайтах клуба | 1 | 30.09.2009 17:49 |