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

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

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

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

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

Интересно, а может ли быть конструктор класса не публичнымм, а приватным?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2011, 17:06     Конструктор класса
Посмотрите здесь:

Конструктор класса - C++
Здравствуйте,не могу понять ,для чего нужен конструктор класса.Когда его нужно задавать

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

Конструктор класса - C++
Для чего используется второй конструктор, если при объявлении полей класса и так указывается их тип? class fraction { ...

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

Конструктор класса - C++
Имеется: class block{ public: block(int, int); private: int CoordX; int CoordY; }; block::block(int X, int Y){ CoordX =...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Сыроежка
Заблокирован
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,597
Записей в блоге: 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,133
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++
Я не могу понять вот эту запись class A{}; class B : public A {

Конструктор класса - C++
class A{}; class B : public A { B(); }; B::B() : A() /// ДЛЯ ЧЕГО ТУТ :A() И ЧТО ЭТО ОЗНАЧАЕТ??? { }

Конструктор класса - C++
Пишу конструкцию #include <iostream.h> #include <conio.h> class MyClass { int a; public: void...


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

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

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