|
1 / 1 / 0
Регистрация: 17.04.2013
Сообщений: 34
|
|||||||||||||||||||||||||||||||
Классы. Баз данных о хранящихся на складе товарах17.04.2013, 22:16. Показов 5362. Ответов 15
Метки нет (Все метки)
В универе начинаем изучение с++, задали написать с помощью классов лабораторную. Программа должна из себя представлять что-то типа базы данных о хранящихся на складе товаров. У нас хранится название товара, его цена и кол-во в штуках. Вся база хранится в файле и записи можно добавлять/удалять/изменять.
Пока пытаюсь описать добавление новой записи. Вот что у меня получается: main.cpp:
Программа не компилируется и выдает следующие ошибки:
P.S. Пишу в QTCreator под Debian, компилятор g++. Если это важно, конечно.
0
|
|||||||||||||||||||||||||||||||
| 17.04.2013, 22:16 | |
|
Ответы с готовыми решениями:
15
Составить программу формирования данных о товарах на складе
База товаров, хранящихся на складе |
|
27 / 27 / 11
Регистрация: 26.10.2012
Сообщений: 101
|
|
| 17.04.2013, 22:27 | |
|
попробуйте почитать Р.Лафоре за классы там все понятно
1
|
|
|
1 / 1 / 0
Регистрация: 17.04.2013
Сообщений: 34
|
|||||||||||
| 18.04.2013, 05:54 [ТС] | |||||||||||
|
Я правильно понял, что нужно в любом случае создавать объект класса и нельзя просто так вызвать функцию из класса?
Теперь main.cpp выглядит вот так:
0
|
|||||||||||
|
Модератор
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,857
|
||||||
| 18.04.2013, 06:26 | ||||||
|
Класс это описание его физически не существует а объект класса это уже физическая сущность, под него выделяется память, равная размеру класса Добавлено через 10 минут в результате при копировании класса, который произойдет здесь потом разрушается временной объект в нем удаляется память в результате при любом обращении ошибка надеюсь, понятно объяснил? Вывод: Если работаешь с памятью, обязателен конструктор копирования
1
|
||||||
|
1 / 1 / 0
Регистрация: 17.04.2013
Сообщений: 34
|
|
| 18.04.2013, 06:33 [ТС] | |
|
А может быть объект с таким же именем как класс?
Добавлено через 6 минут Да, вполне понятно. Про конструктор копирования впервые слышу, если честно, пойду смотреть что за зверь такой.
0
|
|
|
Модератор
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,857
|
||||||||||||||||||
| 18.04.2013, 06:37 | ||||||||||||||||||
|
чтобы потом самому заплюхатся? попытаюсь объяснить по другому ты не можешь написать
нужно писать так
но никому не придет в голову писать так
Добавлено через 4 минуты http://www.c-cpp.ru/books/konstruktor-kopirovaniya по моему понятно написано или здесь h t t p://ru.wikipedia.org/wiki/Конструктор_копирования ( пробелы убери а то форум ссылку режет)
0
|
||||||||||||||||||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||
| 18.04.2013, 06:51 | ||
|
1
|
||
|
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
|
||
| 18.04.2013, 07:24 | ||
|
0
|
||
|
1 / 1 / 0
Регистрация: 17.04.2013
Сообщений: 34
|
|
| 19.04.2013, 10:32 [ТС] | |
|
Да я-то понимаю. До с++ у нас паскаль был. Я, собственно, и планировал потом это все дело в типизированном файле хранить, как это в паскале мы делали.
Добавлено через 4 минуты Да и тот факт, что я уже лет 6 линуксом как основной системой пользуюсь, обязывает понимать подобные речи ![]() Добавлено через 8 часов 7 минут Так, вроде разобрался с конструктором копирования (по крайней мере ошибок ни при выполнении ни при компиляции не наблюдаю). Теперь у меня совсем глупый вопрос: как вывести мне значения, которые я храню в векторе? команды типа mass_goods[i].name/price/count не работают... Добавлено через 17 часов 23 минуты Все, разобрался. Тема закрыта.
0
|
|
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||
| 19.04.2013, 11:15 | |||
|
Добавлено через 3 минуты Добавлено через 22 минуты И разработчик собственной оси может быть новчиком в конкретной области, если эта ось у него первая.
0
|
|||
|
1 / 1 / 0
Регистрация: 17.04.2013
Сообщений: 34
|
||
| 19.04.2013, 12:24 [ТС] | ||
0
|
||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 19.04.2013, 16:07 | |
|
Всё равно я бы делал для name pascal-строку с бинарной длиной, а остальное просто бинарными числами в ожидаемых местах. Этот поход отлично мирит строки с бинарником. А вот ты мне объясни, как ты собираешься разбирать все эти name:, price:, count: при загрузке из файла. Не комерческая? Эйси. Как раз учебная кривоподелуха на тему БД - отличный проект для новичка в области разработки БД, коммерческую пишут опытные коллеги.
0
|
|
|
1 / 1 / 0
Регистрация: 17.04.2013
Сообщений: 34
|
||
| 19.04.2013, 16:33 [ТС] | ||
А вобще я свято верю в то, что я смогу перегрузить операторы >> и << в классе и потом обращаться к файлу через поток fstream.Да и вряд ли я обижусь если вы подробно распишите и подкретите ссылками типа "почитай вот тут" свой метод со строкой, опыта у вас явно больше, чем у меня, думаю, плохого не посоветуете.
0
|
||
|
Модератор
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,857
|
|||||||||||||||
| 19.04.2013, 17:53 | |||||||||||||||
|
проблема придумать формат файла в файле же полей нет доступ последовательный как различишь где заканчивается с динамической строкой сохранять в файле размер как сказал
начала/конца поля и т.д. Добавлено через 9 минут для цены лучше int(цена в копейках) а еще лучше свой формат например такую структуру
0
|
|||||||||||||||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||
| 19.04.2013, 18:02 | ||
|
0
|
||
|
1 / 1 / 0
Регистрация: 17.04.2013
Сообщений: 34
|
||||||
| 19.04.2013, 18:10 [ТС] | ||||||
|
ValeryS, ну можно сделать совсем по-наркомански и хранить это все в текстовом файле и разделять поля каким-либо символом. При больших объемах данных, правда, будет медленно парсить. Очень медленно.
До файлов мне еще нужно с векторами разобраться. Когда я пытаюсь удалить запись через вот такую функцию
0
|
||||||
| 19.04.2013, 18:10 | |
|
Помогаю со студенческими работами здесь
16
Склад. База товаров, хранящихся на складе
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
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
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами 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/
|