Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 06.12.2020
Сообщений: 48

Самодельный class и оператор new

23.11.2022, 15:12. Показов 799. Ответов 6

Студворк — интернет-сервис помощи студентам
Добрый день всем! Начинаю набираться опыта в создании собственных классов. Но вот, пожалуй, в элементарной вещи я все еще путаюсь. Объясните, пожалуйста.
Допустим, у меня имеется описание собственного класса myClass. Для его использования нужно объявить переменную этого класса. Как правильно?
Code
1
myClass myVar;
или
Code
1
myVar = new myClass();
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.11.2022, 15:12
Ответы с готовыми решениями:

Разъясните код пжлст(выдает ошибку:cannot convert from 'class std::list<class c_bullet *,class std::allocator<class c_bullet *> >::iterator' to 'int')
Есть такие строки: std::list&lt;c_bullet*&gt; Bullets; ... for(auto i = Bullets.begin(); i != Bullets.end(); /**/) В строке цикла вот...

Перевод переменной из class A в другой class B с последующим переходом в class C
Доброе время суток. Прошу помочь ввиду нехватка опыта и мозгов( Есть задачка. Посчитать факториал числа. По схеме MVP. Что это...

bad class file: C:Program FilesJavajre1.5.0_02lib t.jar(java/lang/Object.class) class file has wrong version 49.0, should be 48.0
написал тестовый td_jsp.jsp фаил -&gt;&gt; &lt;html&gt; &lt;head&gt;&lt;title&gt;JSP test&lt;/title&gt;&lt;/head&gt; &lt;body&gt; &lt;p&gt;JSP test&lt;/p&gt; &lt;/body&gt; ...

6
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
23.11.2022, 15:28
первое.
0
Модератор
Эксперт по электронике
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,856
23.11.2022, 15:41
Цитата Сообщение от AndreyM74 Посмотреть сообщение
Как правильно?
Цитата Сообщение от AndreyM74 Посмотреть сообщение
myClass myVar;
и так, это статический метод объект класса будет или в стеке(автоматическая память) или в глобальной памяти
Цитата Сообщение от AndreyM74 Посмотреть сообщение
myVar = new myClass();
или так, это динамический метод объект класса будет в куче.

сравни с
C++
1
2
int a;
int * b=new int;
но возможен вариант, когда создать объект можно только динамически (new), для этого конструктор прячут в область protected. Такое встречал я в MFC
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
23.11.2022, 17:17
Цитата Сообщение от ValeryS Посмотреть сообщение
но возможен вариант, когда создать объект можно только динамически (new), для этого конструктор прячут в область protected. Такое встречал я в MFC
ну, такое говорить - только путать новичков, тем более что если в этом и есть доля правды, то это не вся правда.
Есть всякие Фабрики объектов и Синглтоны, когда конструктор приватный, а объект(ы) создаются специальной обвязкой из контролирующих их функций. Но не надо в такие дебри углубляться с новичками.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
23.11.2022, 19:18
Цитата Сообщение от AndreyM74 Посмотреть сообщение
Как правильно?
выбор конкретного способа зависит от задачи.

в твоём случае правильным будет почитать материал на тему: классы памяти с++
и научиться различать:
- автоматические объекты
- динамические объекты
- статические объекты
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12932 / 6800 / 1820
Регистрация: 18.10.2014
Сообщений: 17,211
23.11.2022, 23:29
Цитата Сообщение от AndreyM74 Посмотреть сообщение
Для его использования нужно объявить переменную этого класса. Как правильно?
О чем именно ваш вопрос?

Ваш второй вариант - бессмыслица, которую невозможно скомпилировать. Это отвечает на ваш вопрос?

Или вы хотели спросить о том, как правильно создавать экземпляры класса при помощи new? Создавать экземпляры класса при помощи new, разумеется, можно. Но не так, как вы пытаетесь это делать в вопросе.
0
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
24.11.2022, 05:18
Цитата Сообщение от ValeryS Посмотреть сообщение
но возможен вариант, когда создать объект можно только динамически (new), для этого конструктор прячут в область protected. Такое встречал я в MFC
А можно ссылочку?

Я знаю про подход с приватным деструктором, но подход с протектед конструктором для меня внове.
Он тоже требует какую-то дополнительную функцию? Чем это лучше статик билдера?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.11.2022, 05:18
Помогаю со студенческими работами здесь

Расскажите пожалуйста про оператор "class" из учебника понял только как создать, как сделать содержимое открытым/закрытым...
Расскажите пожалуйста про оператор &quot;class&quot; из учебника понял только как создать, как сделать содержимое открытым/закрытым... ...

Задача: реализовать наследование: interface Сотрудник - class Инженер - class Руководитель.
Помогите решить задачу и объяснить. В Eclipse. Реализовать наследование: interface Сотрудник - class Инженер - class Руководитель

В чем отличие ref class от value class, где какой следует использовать?
САБЖ, мало по мало изучаю C++/CLI.. В голове каша, хотелось бы как то фундаментально осмыслить и запомнить в каких случаях нужно...

Как настроить стили для определённых тегов в <html class='class'>?
На сайте несколько страниц, у каждой свой класс у &lt;html&gt;. Надо, чтобы при наведении на кнопки и ссылки на нужной странице появлялся курсор...

Непонятная ошибка: Exception class EClassNotFound with message 'Class TLabeledEdit not found'
Когда написал среду в Делфи для БД Access то при запуске выдает такую ошибку. project Project.exe raised exception class...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru