Gravio: я это уже сделал. Что-то непонятно?
На странице выводите эту самую форму, все поля у нее - hidden, пользователи ее, соответственно, не видят.
У товара или услуги ставите кнопочку "Оплатить". На нее вешаете действие - обратиться к скрипту на вашем сервере, который, получив id товара или что вы там продаете, создаст уникальный заказ на сайте и вернет его номер, а заодно и подпись ($signature в вашем коде). Эти данные подставляются в поля формы, ей делается sumbit. Пользователь оказывается на сайте ЕК, оплачивает заказ, ЕК сообщает вашему сайту, что заказ номер такой-то оплачен.
Loligan: Все равно важнейший вопрос - зачем. Если ваше "зачем" ограничено этим "надо" - ну, сделайте велосипед.
4 байта под int, 4 байта под длину строки, строка, 4 байта под длину строки, строка. Повторить столько раз, сколько хранится записей.
Loligan: и вы думаете, что вы ответили на этот вопрос?
С чего вы взяли, что вам надо именно сохранять эти данные в бинарный файл? Это четкое задание? Или вы сами так придумали? Бинарный файл не может быть, например, xml-файлом или базой данных SQLite? Что будет, когда вам придется обновлять программу и добавлять поле string address, а у вас уже накоплены такие бинарные файлы, в которых нет этого поля?
Loligan: разница между std::vector и std::string - по большей части косметическая. Я же не знаю, что именно вы собрались делать - как я могу что-то вам советовать?
Loligan: std::string - это контейнер. Контейнеры работают с динамической памятью. При сериализации копируется содержимое строки, а при десериализации требуется инициализация строки этими данными.
Конкретная сериализация может быть произвольной - например, чтобы не изобретать велосипеды, записать данные из членов класса в распространенном формате - xml / json / что вам больше нравится и подходит. Главное - сделать конструктор класса, который, приняв данные в таком формате, правильно их прочитает и пропишет в свои члены.
С++ - язык со строгой типизацией. Такого, как в динамических языках - чтобы объект мог быть создан какой-то функцией по его строковому описанию - нет и быть не может.
Главное преимущество С++ над С - в том, что ты можешь писать в нем на С, если тебе это действительно позарез нужно, и НЕ писать на С во всех остальных случаях ;)
TIFF - формат, хранящий изображение без потерь и изначально предусматривающий разные цветовые схемы.
JPEG предусматривает сжатие картинки с потерями, и CMYK к нему прилеплен искусственно.
Например, дополнительный канал для печати белой краской, насколько мне известно, в JPEG просто-напросто не запихнешь.
Движение дотНета выглядит весьма подозрительным с учетом того, что владелец языка ПРЯМО ЗАИНТЕРЕСОВАН в том, чтобы оно, конечно, работало на Linux и Maс, но обязательно через задницу - чтобы заманивать народ обратно на Винды.
Самое приятное в локализованном IDE - это локализованные проблемы, которые возникают, пока его не освоишь. Найти решение проблемы после перевода на порядок сложнее, чем до.
Ну, а когда освоишься - с удивлением проверяешь: а что, оно правда не переведено? Вот ведь, а все понятно...
EVOSandru6: почему вообще данные определяет метод этого класса, если объект класса не может быть создан без этих данных?
Понимаете, какая штука. Классы в С++ существуют для того, чтобы собрать в конкретные и понятные абстракции код, который делает какую-то конкретную работу и при этом может быть изолирован от всего остального кода. То, что внутри класса, не должно зависеть от того, что снаружи, и наоборот. Все связи внутрь и наружу - только через методы.
А у вас собрано в кучу все, что рядом лежало, без построения какой-либо абстракции вообще. Зачем объекту знать, сколько таких объектов существует? Если какая-то часть кода оперирует набором объектов, то это должен быть отдельный класс, а не тот же класс объекта. За исключением применения паттерна Контейнер, когда у объекта могут быть дочерние объекты того же типа.
EVOSandru6: ну так подумайте сами - почему у вас количество записей определяется внутри объекта, для создания которого уже нужно это количество записей. Может, этим должны заведовать разные классы? Или это количество стоит определять непосредственно перед созданием объектов и просто передавать его как аргумент конструкторам?
Мне непонятно, какую именно абстракцию реализует этот класс, по приведенному вами коду. Есть подозрение, что вы сами это тоже не очень понимаете.
На странице выводите эту самую форму, все поля у нее - hidden, пользователи ее, соответственно, не видят.
У товара или услуги ставите кнопочку "Оплатить". На нее вешаете действие - обратиться к скрипту на вашем сервере, который, получив id товара или что вы там продаете, создаст уникальный заказ на сайте и вернет его номер, а заодно и подпись ($signature в вашем коде). Эти данные подставляются в поля формы, ей делается sumbit. Пользователь оказывается на сайте ЕК, оплачивает заказ, ЕК сообщает вашему сайту, что заказ номер такой-то оплачен.