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

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

Войти
Регистрация
Восстановить пароль
 
thick_int
Заблокирован
#1

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

17.11.2011, 17:06. Просмотров 432. Ответов 8
Метки нет (Все метки)

Интересно, а может ли быть конструктор класса не публичнымм, а приватным?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2011, 17:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Конструктор класса (C++):

Конструктор класса не видит конструктор по умолчанию другого класса - C++
Ошибка, естественно, в Classes.cpp, в строке 20. Ругается, что у класса TailNode нет конструктора по умолчанию, хотя он там, конечно, есть....

Конструктор производного класса требует конструктор предка - C++
Выдаёт вот такую вот ошибку: no matching function for call to 'Cube::Cube()' class Cube { protected: int magInt; bool...

Пример класса с конструктором и деструктором, создание экземпляра класса через конструктор с параметрами - C++
Привести пример класса с конструктором и деструктором, созданием экземпляра класса с помощью конструктора с параметрами.

Создать конструктор копий и оператор присваивания для класса компьютер и члена класса марка - C++
Создать конструктор копий и оператор присваивания для класса компьютер и члена класса марка. Всем огромное спасибо за помощь! |

В конструктор класса передать объект этого класса - C++
Вопрос на засыпку :) Как в конструктор класса передать объект этого класса? Т.е. class A { public: A(const char* s){} ...

Конструктор класса с инициализацией другого класса - C++
error C2064: term does not evaluate to a function taking 6 arguments Так же при наведении на SStria(...); Пишет: call of an object of...

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

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

Конструктор класса - C++
class NMClient{ public: NMClient(string IPServer, int Port); NMClient(string IPServer, int Port) { /*_Running =...

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

Конструктор класса - C++
Добрый вечер. Поясните кто может) Есть класс class Person { public: Person(void); ~Person(void); char Name; char...

Конструктор класса - C++
Необходимо для данного класса class sequence { public: typedef double value_type; typedef std::size_t size_type; static...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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