-286 / 21 / 0
Регистрация: 22.09.2015
Сообщений: 1,067
|
|
1 | |
Пишу свою библиотеку C++04.04.2023, 20:22. Показов 7294. Ответов 122
Метки нет (Все метки)
Приветствую!
Кто хочет поучится программированию на C++ за одно написать нужные классы и функции для будущих своих разработок, предлагаю присоединиться к разработке своей библиотеки C++. Зачем я это делаю? Кто-то скажет есть же уже готовые библиотеки, зачем изобретать велосипед и тд. Во-первых в существующих много лишнего чем вы никогда не воспользуетесь и нужно их изучать подстраиваться под их синтаксисы и тд. проблемы при отладке т.к. не знаете как что работает и тп. Во-вторых в своих знаешь, что и как работает, при необходимости можно доработать, написаны только самые основные нужные функции и классы с удобным для себя синтаксисом. В-третьих при создании своей библиотеки вы изучаете нативные функции и возможности самого языка программирования и на примерах пишите по своему, тестируете и оттачиваете свои мастерство и знания, которые в последствии вам помогут при создании своих будущих проектов. В перспективе я планирую написать с помощью своей библиотеки базу данных, язык программирования, веб-сервер. Ещё есть мысль с применением графической библиотеки wxWidgets(возможно другой) написать заголовочный файл для быстрого создания окон, элементов окна и др. https://github.com/arbnet/CppLibrary
1
|
04.04.2023, 20:22 | |
Ответы с готовыми решениями:
122
Создать свою библиотеку в С++ Создать свою библиотеку Разработать свою библиотеку Как создать свою библиотеку? |
zayats80888
|
07.04.2023, 16:44
Пишу свою библиотеку C++
#21
|
0
|
07.04.2023, 17:30 | 22 |
они его использовали в своих проектах? Или это были далекие от Ит люди?
вы уже сделали на нем хоть один сайт? Так ваш фреймворк на таких и рассичтан, все кто не "копипастер" судя по вашим словам обязаны все писать с 0. При этом не понятно, зачем вы приглашаете писать либу на сях - один фигее использовать можете только вы, все кто будут ее так же использовать -они тоже будут "копипастерами". И вашу тоже придется изучать... Короче вы бросили один велосипед не доведя до релиза - решили другой? 1. Где можно посмотреть реализованные на нем проекты? 2. На нем уже можно попробовать, что то сделать? 3. Вы хотя бы можете сами продемонстриовать создание не сложного сайта, но так, чтобы не убить опять три часа на просмотр того как вы боритесь с переменным успехом с ошибками? Я думаю нет. PS К слову, я на C++ так же писал реальные проекты - могу и здесь вас что ли "макнуть". Зная ваш стиль я практически уверен, что здесь так же много всякого бреда. Добавлено через 2 минуты Блин вот и первый бред. Qt это фреймворк в первую очередь (Даже на Symbian компилил десктопные программы ). И очень даже классный. Qt Creator - это IDE (мне она, кстати очень нравилась, у меня есть лицензионные MS студия, но я прям с удовольствием перешел на креатор). Использовать Qt Creator не обязательно Добавлено через 4 минуты Какие все и для каких проектов? Что вам не хватает в MFC? И что там кажется лишним? (а если это лишнее убрать, то значит уже не для любых проектов) Чего вам не хватает в Qt? И что в Qt кажется лишним? (а если это лишнее убрать, то значит уже не для любых проектов) К слову, Qt в версии 5 заметно подразбили библиотеки, и они стали меньше.. Т.е. пожалуйста: вы можете спокойно подключать именно те, что необходимы на конкретном проекте. Добавлено через 1 минуту Для кроссплатформенности достаточно использовать C++? Добавлено через 1 минуту Как и в нише веб разработки совет прежний: прежде чем говорить, внимательно знакомьтесь с инструментами которым даете оценку. (хотя бы документацию) иначе вы палитесь в качестве дилетанта Добавлено через 2 минуты Как прошедший это, говорю всем запасайтесь чаем и попкорном... Придется долго самотреть как ТС борется с ошибками уровня джун----- Добавлено через 13 минут Это пипец, такое уг, даже ревьюкода нет смысла проводить.
0
|
фрилансер
5841 / 5368 / 1102
Регистрация: 11.10.2019
Сообщений: 14,336
|
|
07.04.2023, 17:42 | 23 |
например, резко появились такие вопросы:
1) типы данных то зачем определять, они ведь уже встроены ) 2) И для этого уже изобрели using 3) на фоне стандартных и оптимизированных-переоптимизированных-отлаженных std::array и std::vector вызывает недоумение своя наивная реализация вектора template <typename dTYPE> class Array . Которая не содержит работу с перемещением и даже простого swap на крайняк. Нет emplacement new 4) безопасность относительно исключений - нету в общем, сыровато Добавлено через 3 минуты если это - "свой новый язык", то он пока что намного хуже, чем C++ . И не может быть эффективнее, чем C++, просто потому, что он на нём и написан. Тогда уж какой-нибудь C или даже ассемблер в руки - и вперёд
0
|
-286 / 21 / 0
Регистрация: 22.09.2015
Сообщений: 1,067
|
|
07.04.2023, 21:00 [ТС] | 24 |
Для удобства, я везде стандартизирую типы, и создаю механизм для просмотра значений и др. при отладке.
Вообще-то для определений типов используют typedef, а using это просто алиас\псевдоним У меня задача как можно проще и быстрее сделать механизм работы с переменными. Вспомогательные функции будут добавляться по мере необходимости. Во-первых на стадии компиляции все ошибки по не соответствию типов отлавливаются. Во-вторых чем проще функционал типа тем лучше, проще работать с данными. Я не собираюсь писать замену C++ я лишь хочу написать интерпретатор по типу PHP, но более гибкий.
0
|
фрилансер
5841 / 5368 / 1102
Регистрация: 11.10.2019
Сообщений: 14,336
|
|
07.04.2023, 21:08 | 25 |
они работают одинаково, и там алиас, и тут алиас.
0
|
-286 / 21 / 0
Регистрация: 22.09.2015
Сообщений: 1,067
|
|
29.04.2023, 11:12 [ТС] | 26 |
Немного обновил.
0
|
фрилансер
5841 / 5368 / 1102
Регистрация: 11.10.2019
Сообщений: 14,336
|
|
29.04.2023, 16:48 | 27 |
pgb,
эти методы
1
|
-286 / 21 / 0
Регистрация: 22.09.2015
Сообщений: 1,067
|
|
29.04.2023, 17:01 [ТС] | 28 |
А что это даст? Извиняюсь за глупый вопрос, но я только учусь. Что noexcept делает?
0
|
фрилансер
5841 / 5368 / 1102
Регистрация: 11.10.2019
Сообщений: 14,336
|
|
29.04.2023, 17:22 | 29 |
pgb, const позволит вызывать метод для константных объектов. А noexcept - так можно пометить методы/функции, которые гарантированно не кидают исключения. Их компилятор сможет более эффективно оптимизировать
1
|
-286 / 21 / 0
Регистрация: 22.09.2015
Сообщений: 1,067
|
||||||
29.04.2023, 19:08 [ТС] | 30 | |||||
Понятно. Спасибо.
Добавлено через 1 час 24 минуты Тестирую класс Args(в файле _array.h) - это класс для передачи аргументов разных типов
0
|
фрилансер
5841 / 5368 / 1102
Регистрация: 11.10.2019
Сообщений: 14,336
|
|
29.04.2023, 21:00 | 31 |
какая именно ошибка ? Её текст или скрин ?
Добавлено через 47 секунд так отладчиком зайди туда, чтобы найти место ошибки Добавлено через 2 минуты вызывает подозрение этот момент Добавлено через 2 минуты также, если индекс отрицательный, тоже будет выход за край (тип индекса должен быть size_t - он беззнаковый)
0
|
-286 / 21 / 0
Регистрация: 22.09.2015
Сообщений: 1,067
|
||||||
29.04.2023, 21:13 [ТС] | 32 | |||||
Алексей1153, В том месте где вы показали всё нормально. Проблема в классе Args, решил его переписать. Раньше сделал внутренний массив указателей на значения через указатель, потом в конструкторе копирования просто устанавливал указатель. Но сейчас думаю проще сделать обычным объектом. Хотя может и не в этом дело, не понравилось мне что-то это сейчас.
В методе Take класса Args, я получаю указатель на элемент, потом читаю значение в новый объект который потом возвращаю из метода. А по указателю удаляю объект\значение вот тут что-то не правильно работает.
Ошибку никакую не выдаёт, ни при компиляуции ни при работе, но результат не тот который ожидаем..
0
|
-286 / 21 / 0
Регистрация: 22.09.2015
Сообщений: 1,067
|
||||||
02.05.2023, 21:45 [ТС] | 33 | |||||
Сделал свой класс(в файле _types.hpp) умного указателя POINTER<CHARS> и наследуя его делаю класс STRING.
При конвертации числа в строку возникает ошибка. Не пойму в чём дело. Исходник на гите обновил. Тестовый файл
0
|
фрилансер
5841 / 5368 / 1102
Регистрация: 11.10.2019
Сообщений: 14,336
|
||||||
02.05.2023, 22:05 | 34 | |||||
pgb, я сильно не вникал. Но подозрительное место
а ты его разыменовываешь (?) и при этом ты туда ещё и строку хочешь форматировать также, где гарантия, что val - это int ? Это к вопросу о форматном символе %d Я потерял нить логики, если честно Добавлено через 5 минут нет, отсутствие инициализации тут ни при чём. Но всё равно сомнительно его там наличие
0
|
-286 / 21 / 0
Регистрация: 22.09.2015
Сообщений: 1,067
|
||||||
02.05.2023, 23:02 [ТС] | 35 | |||||
Алексей1153, О чём вы говорите там всё нормально работает.
POINTER<CHARS> lts; Создаётся указатель на строку до 32 символов, потом sprintf(*lts,"%d",val);lts.Size(true); по указателю на строку заполняется число из val. потом подсчёт длинны строки в указателе. Это можно вынесли в main отдельно проверить всё работает нормально. Код
Cr1=0x2533b10 Cr1=0x2533b50 Cr1=0x2533bb0 DEL=0x2533bb0 4 DEL=0x2533b50 NULL т.е. создаётся STRING st; потом ещё новый объект для конвертации st=(STRING)445538; ещё какой-то видимо для вывода Удаляется который для конвертации Потом видимо для присвоения и потом ещё раз с таким же адресом пытается удалить но его уже нет. Добавлено через 34 минуты Разобрался. Завтра доделаю. Добавлено через 5 минут Как правильно сделать перегрузку для типов целых чисел и с плавающей точкой?
0
|
KSergey9
|
05.05.2023, 11:51
#36
|
Не по теме: Чисто посмеяться зайти, если погода плохая за окном. Алексей1153, вы молодец! но бессмысленный в данном случае. Такие персонажи (типажа "непризнанный гений") периодически всплывают на разных форумах. Увы, практика, в том числе моя личная, показывает, что абсолютно бесполезно надеяться быть услышанным. Хочется, но бесполезно.
0
|
фрилансер
5841 / 5368 / 1102
Регистрация: 11.10.2019
Сообщений: 14,336
|
|
05.05.2023, 11:56 | 37 |
KSergey9, да я давно перестал пытаться переделывать ТС Ясно, что всё это делается намного проще. Я пытаюсь смотреть на текущий код и разгадать очередные грабли. Но долго я не ковыряюсь, говорю только то, что в глаза бросается. В отладчике не запускаю, там бы что-то ещё нашёл
1
|
voral
|
05.05.2023, 12:02
#38
|
Не по теме:
0
|
-286 / 21 / 0
Регистрация: 22.09.2015
Сообщений: 1,067
|
||||||
07.05.2023, 19:28 [ТС] | 39 | |||||
voral, мне вот не понятен ваш мотив, я по вашему делаю что-то запрещённое, не нормальное или что? В чём причина постоянных ваших нападок?
Так и фреймворк первоначально я выкладывал на гит. Да и что толку что я сейчас выложил либу на гит толку всё равно никакого, это было бы полезно если со мной ещё кто-то разрабатывали или подсказывали что и как сделать и тд. В данном случае пока ещё подержу, чисто для себя буду некоторые правки делать. Позже если единомышленников опять не будет, удалю, когда буду приближаться к завершению разработки библиотеки, т.к. в первую очередь делаю для себя, для разработок будущих своих проектов. Алексей1153, вам большое спасибо за помощь, даёте дельные советы. KSergey9, вам тоже спасибо, несмотря на ваше саркастичное отношение, наталкивали на некоторые решения. Добавлено через 4 часа 6 минут Обновил гит. Добавил класс своего умного указателя. Переделал класс STRING с применением умного указателя, также переделал массивы Array. Сейчас настраиваю Args аргументы. Непонятная ошибка при вызове метода Take(извлечение элемента), скорее всего связанная с деструктором, пока не понял в чём дело. Буду рад помощи.
Ошибку нашёл, переделываю класс ANY.
0
|
-286 / 21 / 0
Регистрация: 22.09.2015
Сообщений: 1,067
|
||||||||||||||||
09.05.2023, 18:34 [ТС] | 40 | |||||||||||||||
Как правильно удалить const char*?
0
|
09.05.2023, 18:34 | |
09.05.2023, 18:34 | |
Помогаю со студенческими работами здесь
40
Как создать свою библиотеку Как правильно подключить свою библиотеку? Как написать свою библиотеку функций? Как добавить свою библиотеку в стандартные С++ Как создать свою библиотеку функций? Как подключить свою библиотеку, написанную на ассемблере? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |