|
0 / 0 / 0
Регистрация: 19.03.2018
Сообщений: 9
|
||||||||||||||||||||||||||
Массив объектов одного класса как поле другого класса19.03.2018, 12:09. Показов 3611. Ответов 7
Доброе время суток. Мне тут в универе задали лабу, нужно создать класс полем которого будет массив объектов класса из предыдущей лабы и в котором будут содержаться методы выводящие в консоль информацию о некоторых из этих объектов. Как мне кажется все правильно написал и оформил но компилятор ругается на ошибки природа которых мне не совсем ясна. Прошу помочь и указать в чем я не прав. abit тот самый класс из первой лабы. menu - класс поле которого массив объектов и который содержит нужные методы. Ошибки что выдает компилятор:
menu.h(5): error C2143: синтаксическая ошибка: отсутствие ";" перед "*" menu.h(5): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию menu.h(5): error C2238: непредвиденные лексемы перед ";" menu.h(11): error C2061: синтаксическая ошибка: идентификатор "abit" menu.h(5): error C2143: синтаксическая ошибка: отсутствие ";" перед "*" menu.h(5): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию menu.h(5): error C2238: непредвиденные лексемы перед ";" menu.h(11): error C2061: синтаксическая ошибка: идентификатор "abit" ------------main.cpp -------------------
-------------abit.h----------------------
--------------------abit.cpp-------------------------
-------------------menu.h-------------------------
-----------------menu.cpp-------------------------
0
|
||||||||||||||||||||||||||
| 19.03.2018, 12:09 | |
|
Ответы с готовыми решениями:
7
Массив объектов класса как член другого класса Как переместить из стека одного класса в массив другого класса? Перегрузка операции + с преобразованием объектов одного класса в объекты другого класса |
|
Модератор
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,242
|
||||||
| 19.03.2018, 12:21 | ||||||
|
В abit.h Лишний #include menu.h:
1
|
||||||
|
techpriest
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180
|
|
| 19.03.2018, 12:24 | |
|
это происходит, потому что два файла пытаются подключить друг друга.
1
|
|
|
0 / 0 / 0
Регистрация: 19.03.2018
Сообщений: 9
|
|
| 19.03.2018, 12:39 [ТС] | |
|
Спасибо, помогло.
Добавлено через 11 минут zss, Появилась новая проблема после запуска открывается откладка со словами "Необработанное исключение по адресу 0x656A66CB (ucrtbased.dll) в Final_02_Pract.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xCDCDCDBD." Указывая на 86 строку abit.cpp, не могли бы вы и с этим помочь? Так же убрал else которые были в конструкторе, они там не нужны и присвивания 3х переменных, т.к. они в списке инициализации конструктора
0
|
|
|
0 / 0 / 0
Регистрация: 19.03.2018
Сообщений: 9
|
||||||||||||||||||||||||||
| 19.03.2018, 15:19 [ТС] | ||||||||||||||||||||||||||
|
Помогите пожалуйста.Мне тут в универе задали лабу, нужно создать класс полем которого будет массив объектов класса из предыдущей лабы и в котором будут содержаться методы выводящие в консоль информацию о некоторых из этих объектов. После запуска открывается окно завершение роботы и в отладчике вот это "Необработанное исключение по адресу 0x52F966CB (ucrtbased.dll) в Final_02_Pract.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xCDCDCDBD." Прошу помочь и указать в чем я не прав. abit тот самый класс из первой лабы. menu - класс поле которого массив объектов и который содержит нужные методы.
------main.cpp--------
------abit.h------------
------abut.cpp----------
--------menu.h----------
------menu.cpp--------
0
|
||||||||||||||||||||||||||
|
Форумчанин
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|||||||||||||
| 19.03.2018, 16:20 | |||||||||||||
|
Но, судя по логу, у вас VS ругается на то, что вы залезли не в свою память. При осмотре класса abit сразу бросается в глаза, что у вас используются указатели и работа с динамической памятью, но при этом не соблюдено правило трёх. Вам нужно явно определить конструктор копий и оператор копирующего присваивания
Добавлено через 27 минут
0
|
|||||||||||||
|
10 / 10 / 0
Регистрация: 29.04.2013
Сообщений: 145
|
||||||
| 19.03.2018, 16:38 | ||||||
1
|
||||||
|
0 / 0 / 0
Регистрация: 19.03.2018
Сообщений: 9
|
|
| 19.03.2018, 16:57 [ТС] | |
|
Просто нет слов, на таких мелочах погореть это нужно уметь. Огромное спасибо
0
|
|
| 19.03.2018, 16:57 | |
|
Помогаю со студенческими работами здесь
8
Инициализация экземпляра класса, как поле другого класса Преобразование объектов одного класса в объекты другого Как сделать вектор/массив объектов одного класса с разным <типом> Как создать массив объектов одного класса в другом, и как к ним обращаться?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|