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

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

Войти
Регистрация
Восстановить пароль
 
kordax
4 / 4 / 1
Регистрация: 08.06.2014
Сообщений: 89
#1

Указатель = 0 в аргументе конструктора - C++

12.07.2014, 18:45. Просмотров 220. Ответов 4
Метки нет (Все метки)

Не знал даже как тему назвать.

Прошу пояснить такой момент, не в первый раз встречаю, но гугл мне не объяснил.
Для чего, иногда в конструкторе, прямо в интерфейсе пишут T* p = 0, а не просто T* p?
C++
1
    counted_ptr(T* p = 0, int* c = new int(1)) : pointer(p), count(c) {}    // default constructor
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.07.2014, 18:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Указатель = 0 в аргументе конструктора (C++):

Ссылка на указатель в аргументе функции - C++
при изучении примеров реализации бинарного дерева(в функции добавления нового узла)я увидел,что есть как такой вариант,когда аргумент...

Чем отличаются указатель в теле функции и в аргументе - C++
Здравствуйте. Не могу разобраться чем, в данном случае: bool LexAnalysis(const char* text) { const char *str = text; const char...

В чём отличия конструктора копирования и конструктора перемещения? Где и как их нужно использовать? - C++
Помогите разобраться в копирующем и перемещающем конструкторах. В чём их существенное отличие и какой плюс от использования перемещающего...

Как получить ссылку на указатель или указатель на указатель в массиве? - C++
В процессе реализации сортировки пузырьком натолкнулся на такую проблему: как поменять значения указателей, передаваемых в функцию. Если...

Ошибка в аргументе функции - C++
Доброго времени суток. В университете дали такое задание: Составить программу на основе ветвления, концепция задачи такова: ...

Взятие адреса в аргументе - C++
Есть такой код: void STOCK::acquiare(const std::string &co,long n, double pr) { company=co; if (n<0) { ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
uglyPinokkio
326 / 229 / 41
Регистрация: 30.05.2014
Сообщений: 682
12.07.2014, 18:52 #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от kordax Посмотреть сообщение
Для чего, иногда в конструкторе, прямо в интерфейсе пишут T* p = 0, а не просто T* p?
Это значение параметра по умолчанию. т.е. можно вызывать counted_ptr() без задания параметров
kordax
4 / 4 / 1
Регистрация: 08.06.2014
Сообщений: 89
12.07.2014, 19:23  [ТС] #3
Понятно, т.е. при вызове этого конструктора по умолчанию, будет автоматом присвоено 0?
Присвоено самому указателю или он будет разыменован?

Если бы было просто T* p, то это бы уже не был конструктор по-умолчанию?
olper
24 / 24 / 11
Регистрация: 02.12.2013
Сообщений: 75
12.07.2014, 19:32 #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от kordax Посмотреть сообщение
будет автоматом присвоено 0
некоему "pointer" будет присвоен 0, и разыменовывать его потом не желательно
Цитата Сообщение от kordax Посмотреть сообщение
Если бы было просто T* p, то это бы уже не был конструктор по-умолчанию?
да
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
12.07.2014, 19:57 #5
Цитата Сообщение от kordax Посмотреть сообщение
Для чего, иногда в конструкторе, прямо в интерфейсе пишут
Это касается не только конструкторов, но и любых других функций.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.07.2014, 19:57
Привет! Вот еще темы с ответами:

Значение логарифма при любом аргументе - C++
при значении аргумента больше 1 следует воспользоваться значением ln10. Не могу понять ошибку, программа работает без цикла if, а с ним...

Шаблонная функция, выводящая информацию о своем аргументе - C++
Надо написать программу, буду очень благодарен

Вычислить значение разных функций при определенном аргументе - C++
Вычислить значение y в зависимости от выбранной функции ϕ(x), аргумент которой определяется из поставленного условия. Возможные значения...

Функция, принимающая указатель и число байт и выделяющая память под указатель - C++
Здравствуйте. Задача легкая, но почему-то завис Нужно написать функцию, принимающую указатель и число байт и выделяющую память под...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
12.07.2014, 19:57
Ответ Создать тему
Опции темы

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