|
0 / 0 / 0
Регистрация: 21.09.2022
Сообщений: 76
|
||||||||||||||||||||||||||
Как перейти от Структуры к классу27.03.2023, 15:18. Показов 1192. Ответов 25
Метки нет (Все метки)
Добрый день!
Первый семестр университета был ориентирован на работу со структурным типом данных и выглядело это примерно так:
В моей голове это выглядит как-то так, но на практике в новоиспечённых руках понятное дело не работает
0
|
||||||||||||||||||||||||||
| 27.03.2023, 15:18 | |
|
Ответы с готовыми решениями:
25
Как перейти от абсолютного позиционирования к относительному не теряя структуры?
Помощью цикла просмотреть все элемнты массива структуры, а потом перейти к просмотру следующей |
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
|
| 27.03.2023, 15:43 | |
|
0
|
|
|
90 / 60 / 32
Регистрация: 06.08.2020
Сообщений: 220
|
|
| 27.03.2023, 15:52 | |
|
Структура - это тот же класс, где поля по умолчанию публичные. Это собственный тип данных. Обычно, если это просто объединение каких-то близкородственных данных - создают структуру. Если нужен некий функционал обработки этих полей - удобней класс.
Попробуйте поэтапно понимать. Сначала разобраться с доступом к полям. Создайте сначала экземпляр класса Food f; Убедитесь, что поля вы не видите. Соответственно нужно, или создавать публичные поля, или делать вспомогательные методы геттеры для их просмотра и сеттеры для установки. Потом с динамической памятью. Убедитесь, что не важно какие поля приватные или не очень - память под них выделяется одинаково. Хоть в конструкторе, хоть где-нибудь ещё.
2
|
|
|
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
|
||||||
| 27.03.2023, 16:05 | ||||||
Сообщение было отмечено -АнКи- как решение
Решение
struct от class в С++ отличаются только тем, что в struct поля по умолчанию public, а в class поля по умолчанию private.
Всё. Других различий нет. Конструкторы в структурах точно также есть на самом деле. Соответственно со структурами у вас код
Если вы private: в описании класса замените на public: - то разницы между структурами и классами вообще не заметите.
1
|
||||||
|
0 / 0 / 0
Регистрация: 21.09.2022
Сообщений: 76
|
||||
| 27.03.2023, 16:15 [ТС] | ||||
|
Добавлено через 2 минуты Добавлено через 1 минуту В таком случае пойду разбираться как доставать переменные для общего пользования
0
|
||||
|
2 / 2 / 0
Регистрация: 12.10.2016
Сообщений: 12
|
||||||
| 27.03.2023, 16:15 | ||||||
Используйте в определении класса модификатор доступа не private, а public. Тогда можно будет так обращаться к полям f[i].name;
1
|
||||||
|
0 / 0 / 0
Регистрация: 21.09.2022
Сообщений: 76
|
|||
| 27.03.2023, 16:17 [ТС] | |||
|
Добавлено через 1 минуту Уже разобрался с этим моментом
0
|
|||
|
2 / 2 / 0
Регистрация: 12.10.2016
Сообщений: 12
|
|
| 27.03.2023, 16:19 | |
|
Хорошо
![]() Вам тогда нужно использовать сеттеры и геттеры вот здесь на мой взгляд не плохо объясняется что это такое https://www.youtube.com/watch?v=1GdzmKdBf9s&t=4s
1
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
||
| 27.03.2023, 16:26 | ||
|
-АнКи-, задача какая стоит: просто формально отчитаться о наличии класса в коде, или разобраться как применять классы?
Если вы просто оставите все поля public, а весь остальной код никак не поменяется, то ни о каком использовании классов не может идти и речи, у вас точно также останутся те же самые структурные типы в коде, только объявленные с ключевым словом class. Добавлено через 1 минуту Меня правда только один конкретный момент интересовал: как вы выделяете память для полей структуры. Вряд ли это все 500 строк занимает.
1
|
||
|
0 / 0 / 0
Регистрация: 21.09.2022
Сообщений: 76
|
|||||||||||||
| 27.03.2023, 16:30 [ТС] | |||||||||||||
|
Поэтому задача скорее разобраться в классах и как с ними работать, а из задания лабы все поля должны быть private Добавлено через 3 минуты Под саму структуру константой делал 100 позиций(Сказали пока динамически не расширять в ходе программы):
0
|
|||||||||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
|
| 27.03.2023, 16:30 | |
|
-АнКи-, ну тогда если вы не против разобраться, то начнем с моего первого вопроса в этой теме. Это был наводящий вопрос.
Повторю: сейчас вам не понятно как обращаться с конструктором и использовать его для выделения памяти для полей. Вопрос: как вы поступали в этом случае раньше, когда у вас были только структуры? Как вы выделяли память для полей? Покажите.
0
|
|
|
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
|
||
| 27.03.2023, 16:30 | ||
|
В наши годы так было. Мне любопытно: что из этого вы не сделали? или что не так в вашем учебном процессе? что из перечисленного отсутствует?
1
|
||
|
0 / 0 / 0
Регистрация: 21.09.2022
Сообщений: 76
|
|
| 27.03.2023, 16:31 [ТС] | |
|
0
|
|
|
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
|
||
| 27.03.2023, 16:33 | ||
1
|
||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
||||
| 27.03.2023, 16:33 | ||||
|
Для начала, вот эта строка: При этом destination - это параметр конструктора типа const char*.А surname - это поле класса.Далее вам понадобятся такие понятия как "конструктор копирования" и "оператор присваивания". Вы с ними знакомы?
1
|
||||
|
0 / 0 / 0
Регистрация: 21.09.2022
Сообщений: 76
|
||||
| 27.03.2023, 16:38 [ТС] | ||||
|
2)На лекциях я побывал 2 раза и когда мне надо было сдавать лабу уже на следующий день, всё что я узнал это как устроен компьютер(И без них знал, спасибо. Больше не хожу туда. Сам разбираюсь по несколько часов, так даже лучше. Ну, в случае чего помогает Семинарист на парах) 3)Преподы ничего не рекомендуют 4)Кстати на счёт семинариста, у нас ведёт девушка, которая не знает как использовать ctrl+c и т.п. 5)А используя некоторые функции по типу strcpy не может перевести на новый лад типа strcpy_s? потому что не знает, а вижуал студио ругается. Приходится синтаксис самому вычитывать. Добавлено через 1 минуту Добавлено через 1 минуту А на счёт копирования и присваивания наслышан, но не вникал ещё
0
|
||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
||
| 27.03.2023, 16:44 | ||
|
1
|
||
|
0 / 0 / 0
Регистрация: 21.09.2022
Сообщений: 76
|
|
| 27.03.2023, 16:52 [ТС] | |
|
0
|
|
|
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
|
|
| 27.03.2023, 16:58 | |
|
0
|
|
|
Модератор
|
|
| 27.03.2023, 18:02 | |
|
0
|
|
| 27.03.2023, 18:02 | |
|
Помогаю со студенческими работами здесь
20
как на паскале сделать "перейти к следуючему" "перейти к предыдучему" Как обратиться к классу? Как обратиться к высшему классу? Как привязать картинку к классу? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|