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

Конструктор класса - C++

Восстановить пароль Регистрация
 
thick_int
Заблокирован
17.11.2011, 17:06     Конструктор класса #1
Интересно, а может ли быть конструктор класса не публичнымм, а приватным?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Сыроежка
Заблокирован
17.11.2011, 17:07     Конструктор класса #2
Цитата Сообщение от thick_int Посмотреть сообщение
Интересно, а может ли быть конструктор класса не публичнымм, а приватным?
Конечно может быть! Вопрос только в том, для каких целей? Например, если есть дружественная классу функция, то она может создавать объекты этого класса. Или, например, статическая функция этого же класса может внутри себя создавать объекты этого класса.
thick_int
Заблокирован
17.11.2011, 17:47  [ТС]     Конструктор класса #3
А еще на такой вопрос не ответите,
Если я в глобальной области использую вот такой оператор
C++
1
double* nums = new double [10] ();
то где в таком случае я должен указать оператор
C++
1
delete []  nums;
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
17.11.2011, 17:50     Конструктор класса #4
Цитата Сообщение от thick_int Посмотреть сообщение
то где в таком случае я должен указать оператор
перед return 0; можешь раньше
Сыроежка
Заблокирован
17.11.2011, 17:51     Конструктор класса #5
Цитата Сообщение от thick_int Посмотреть сообщение
А еще на такой вопрос не ответите,
Если я в глобальной области использую вот такой оператор
C++
1
double* nums = new double [10] ();
то где в таком случае я должен указать оператор
C++
1
delete []  nums;
Если я не ошибаюсь, то оператор выделения памяти у вас компилироваться не будет, так как присутствуют лишние круглые скобки в его конце.

Что касается вызова оператора удаления, то вы можете вызвать его в любом месте программы. Главное просто передать туда значение этого указателя, либо чтобы он был видим в той области программы, где вы его собираетесь использовать. Глобальные переменные обычно видимы во всей программе, если они не скрываются во вложенном регионе объявлений.
thick_int
Заблокирован
17.11.2011, 17:54  [ТС]     Конструктор класса #6
Нет будет, я только что проверил.
А скобки то при чем. Это всего лишь инициализация значением по умолчанию, то есть в данном случае нулем.
Но все равно спасибо.
Сыроежка
Заблокирован
17.11.2011, 17:56     Конструктор класса #7
Цитата Сообщение от thick_int Посмотреть сообщение
Нет будет, я только что проверил.
А скобки то при чем. Это всего лишь инициализация значением по умолчанию, то есть в данном случае нулем.
Но все равно спасибо.
Что-то мне казалось, что в стандарте С++ 2003 года этот код не должен компилироваться. Но все может быть.
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
17.11.2011, 19:00     Конструктор класса #8
Цитата Сообщение от Сыроежка Посмотреть сообщение
Что-то мне казалось, что в стандарте С++ 2003 года этот код не должен компилироваться. Но все может быть.
Странно. В студии 2008 для double компилируется, а для int нет.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2011, 19:28     Конструктор класса
Еще ссылки по теме:

C++ Конструктор производного класса требует конструктор предка
Конструктор класса C++
Конструктор класса C++

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

Или воспользуйтесь поиском по форуму:
thick_int
Заблокирован
17.11.2011, 19:28  [ТС]     Конструктор класса #9
А у меня в 2010 для всего компилируется.
Yandex
Объявления
17.11.2011, 19:28     Конструктор класса
Ответ Создать тему
Опции темы

Текущее время: 03:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru