Библиотеки, вопрос по классам (конструкция), функциям в классах

MacSim
Offline
Зарегистрирован: 28.11.2012

расскажите о классах. в библах в хедерах (*.h) идет объявление класса и функций класса, как я понимаю.

class name {
    public: объявление публичных ф-ций

    private:частных(приватных)

}; //конец странно, но есть ; у функций нет.

в чем разница public и privat функций в классе?

сами тела ф-ции находятся в *.cpp

в *.cpp до функций используется

name::name() {
    // пусто
} что это за конструкция? и далее

тип переменной имя класса::имя функции() {тело функции} // тоже не понятно, видимо двойное двоеточие говорит о принадлежности функции к классу.

что содержиться в файле *.swp?

как создать библиотеку с классом? как поправить существующую? если в нее *.h и *.cpp дописать дополнительные функции будет ли работать или менять надо и *.swp?

с помощью чего пишут библиотеки для arduino ide? вроде где-то встречал (studio или codevision) сохраняли все как библиотеку.

ard ide...тфу. CVavr похоже не поддерживается, студио 7 на висту не становится...

 

 

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

колись - под воздействием какого вещества ты сейчас находишься?

Alexino
Offline
Зарегистрирован: 29.12.2015

Вопросы из оперы "Начинающим в ООП".  Любая книга по С++ способна всё разъяснить. Для чего создавать подобные темы, если подобное ищится за считанные секунды ? 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

MacSim пишет:

расскажите

А пол помыть не надо? Вас мама не учила как надо просьбу формулировать?

MacSim пишет:

в библах

Не знаю, что это такое.

MacSim пишет:

    public: объявление публичных ф-ций

В классах не бывает функций, там методы.

MacSim пишет:

в чем разница public и privat функций в классе?

...

} что это за конструкция? и далее

Ответы на эти и все все подобные вопросы есть здесь - http://8361.ru/6sem/books/Straustrup-Yazyk_programmirovaniya_c.pdf

MacSim пишет:

как создать библиотеку с классом?

Сесть, почесать репу и создать.

MacSim пишет:

как поправить существующую? 

Открыть в текстовом редакторе и поправить.

MacSim пишет:

если в нее *.h и *.cpp дописать дополнительные функции будет ли работать

Если правильно дописать, то чего ж не будет? Те, что там уже написаны не от сотворения мира же там сидят - кто-то их написал.

MacSim пишет:

с помощью чего пишут библиотеки для arduino ide? 

Довольно часто с помощью самой Arduino IDE, а вообще с помощью любого текстового редактора от vi до Visual Studio, включая Notepad, и всё остальное барахло. Можно даже MS-Word использовать - какой есть редактор, таким и пользуются.

Alexino
Offline
Зарегистрирован: 29.12.2015

ЕвгенийП пишет:
Довольно часто с помощью самой Arduino IDE
На самом деле, какая то убогая IDE.
Сейчас, ради интереса, добавил новую вкладку с именем файла "test.h". Файл создался рядом с моим файлом .ino. Вроде всё в порядке, всё хорошо. Но при подключении этого файла компилятор пишет - "No such file or directory". Бред...
В IDE никаких настроек с подключаемыми путями нет. Куда файлы пихать, зачем, .... и почему он сам не создаёт там, где они нужны, .... только одним разрабам известно.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Убогая, не без этого. Но тут слух прошёл, что в последней версии, хоть код корёжить перестали. Сам я ещё не пробовал, но если правда - и на том спасибо.

Alexino
Offline
Зарегистрирован: 29.12.2015

Hex вообще создаётся у чёрта на куличках - C:\Windows\system32\build/sketch_jan14a.ino.hex Причём папки этой даже нет. Может скрытая, хз....

Я тут писал код в 8-ом протеусе, там отладка адекватная. Но там файлы нельзя создавать, придётся вручную рядом ложить и в текстовом редакторе править. Неудобно.

ЗЫ: В планах нормальные библиотечки написать для дуин.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Alexino пишет:

Hex вообще создаётся у чёрта на куличках 

Это решабельно. В файле настроек пропишите build=<директория> - будет создавать где скажете.

Alexino пишет:

ЗЫ: В планах нормальные библиотечки написать для дуин.

К Архату присоединяйтесь - он фанат всё нормальное писать :)

Alexino
Offline
Зарегистрирован: 29.12.2015

Кто такой Архат - не знаю ) Всё нормальное писать - уже в крови, корябит от кривых кодов )
Да почему бы и нет ? )

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Я там очепятку поправил, обратите внимание. Конечно, должно быть build, а не buil

Alexino
Offline
Зарегистрирован: 29.12.2015

Это я уже сделал, спасибо !
Но... опять же эти "но"...  Т.к. для отладки хочу заюзать протеус, при подключении .elf или .hex файла, созданного в ардуиновской IDE, она напрочь отказывается перекомпиливать код, куча каких-то непонятных ошибок вылетает.

C:\Users\Alex\Documents\Arduino\sketch_jan14a\build\sketch\build\preproc\ctags_target_for_gcc_minus_e.cpp.o: In function `setup':

C:\Users\Alex\Documents\Arduino\sketch_jan14a/sketch_jan14a.ino:4: multiple definition of `setup'

C:\Users\Alex\Documents\Arduino\sketch_jan14a\build\sketch\sketch_jan14a.ino.cpp.o:C:\Users\Alex\Documents\Arduino\sketch_jan14a/sketch_jan14a.ino:4: first defined here

C:\Users\Alex\Documents\Arduino\sketch_jan14a\build\sketch\build\preproc\ctags_target_for_gcc_minus_e.cpp.o: In function `setup':

C:\Users\Alex\Documents\Arduino\sketch_jan14a/sketch_jan14a.ino:4: multiple definition of `loop'

C:\Users\Alex\Documents\Arduino\sketch_jan14a\build\sketch\sketch_jan14a.ino.cpp.o:C:\Users\Alex\Documents\Arduino\sketch_jan14a/sketch_jan14a.ino:4: first defined here

C:\Users\Alex\Documents\Arduino\sketch_jan14a\build\sketch\build\sketch\sketch_jan14a.ino.cpp.o: In function `setup':

C:\Users\Alex\Documents\Arduino\sketch_jan14a/sketch_jan14a.ino:4: multiple definition of `setup'

C:\Users\Alex\Documents\Arduino\sketch_jan14a\build\sketch\sketch_jan14a.ino.cpp.o:C:\Users\Alex\Documents\Arduino\sketch_jan14a/sketch_jan14a.ino:4: first defined here

C:\Users\Alex\Documents\Arduino\sketch_jan14a\build\sketch\build\sketch\sketch_jan14a.ino.cpp.o: In function `setup':

C:\Users\Alex\Documents\Arduino\sketch_jan14a/sketch_jan14a.ino:4: multiple definition of `loop'

C:\Users\Alex\Documents\Arduino\sketch_jan14a\build\sketch\sketch_jan14a.ino.cpp.o:C:\Users\Alex\Documents\Arduino\sketch_jan14a/sketch_jan14a.ino:4: first defined here

C:\Users\Alex\Documents\Arduino\sketch_jan14a\build\sketch\build\sketch\build\preproc\ctags_target_for_gcc_minus_e.cpp.o: In function `setup':

C:\Users\Alex\Documents\Arduino\sketch_jan14a/sketch_jan14a.ino:4: multiple definition of `setup'

C:\Users\Alex\Documents\Arduino\sketch_jan14a\build\sketch\sketch_jan14a.ino.cpp.o:C:\Users\Alex\Documents\Arduino\sketch_jan14a/sketch_jan14a.ino:4: first defined here

C:\Users\Alex\Documents\Arduino\sketch_jan14a\build\sketch\build\sketch\build\preproc\ctags_target_for_gcc_minus_e.cpp.o: In function `setup':

C:\Users\Alex\Documents\Arduino\sketch_jan14a/sketch_jan14a.ino:4: multiple definition of `loop'

C:\Users\Alex\Documents\Arduino\sketch_jan14a\build\sketch\sketch_jan14a.ino.cpp.o:C:\Users\Alex\Documents\Arduino\sketch_jan14a/sketch_jan14a.ino:4: first defined here

C:\Users\Alex\Documents\Arduino\sketch_jan14a\build\sketch\build\sketch\build\sketch\sketch_jan14a.ino.cpp.o: In function `setup':

C:\Users\Alex\Documents\Arduino\sketch_jan14a/sketch_jan14a.ino:4: multiple definition of `setup'

C:\Users\Alex\Documents\Arduino\sketch_jan14a\build\sketch\sketch_jan14a.ino.cpp.o:C:\Users\Alex\Documents\Arduino\sketch_jan14a/sketch_jan14a.ino:4: first defined here

C:\Users\Alex\Documents\Arduino\sketch_jan14a\build\sketch\build\sketch\build\sketch\sketch_jan14a.ino.cpp.o: In function `setup':

C:\Users\Alex\Documents\Arduino\sketch_jan14a/sketch_jan14a.ino:4: multiple definition of `loop'

C:\Users\Alex\Documents\Arduino\sketch_jan14a\build\sketch\sketch_jan14a.ino.cpp.o:C:\Users\Alex\Documents\Arduino\sketch_jan14a/sketch_jan14a.ino:4: first defined here

collect2.exe: error: ld returned 1 exit status

exit status 1
Ошибка компиляции.

 Хотя, сам протеус файлы не занимает, я с ними могу делать что угодно, хоть удалить.

А если юзать сам протеус как IDE+дебаггер, он вообще хер знает где создаёт файлы кода, и заставить его создавать рядом с проектом мне пока не удаётся. 
Если кто знает как это сделать - буду благодарен за подсказку.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Не знаю, я протеус не использую. 300 фунтов, конечно, на ахти какие деньги, но мне их жалко - есть куда потратить на более интересные вещи.

Alexino
Offline
Зарегистрирован: 29.12.2015

А, не, дело не в протеусе. Даже после первой компиляции кода, вторая уже не проходит. Это если я устанавливаю путь ".", для создания папки build рядом с .ino
Если удалить эту папку, то компиляция проходит нормально, но повторно - хрен, пока снова не удалишь папку "build" со всеми созданными файлами.

Вот такие вот дела....

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Нет, это бред какой-то. Там где-то ещё есть (в файле опций) сохранять ли промежуточные файлы. Поэспериментируйте с этим. У меня же как-то всё работает.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012
Alexino
Offline
Зарегистрирован: 29.12.2015

Евгений, понимаю что это бред, но оно так и есть...

kisoft, это всё уже проделано, читайте выше, папка создаётся. Но пока она существует, дальнейшая компиляция не проходит. Ошибки я выложил выше.

 

MacSim
Offline
Зарегистрирован: 28.11.2012

Спасибо всем ответившим, и другим неравнодушным. Особая благодарность ЕвгениюП за разьяснения и ссылочку.

Для Клапауция 322 открою сикрет: курю даташиты, на сегодня наверное уже перебор. Есть такие страницы "особые" от которых мозг плющит, всего колбасит и ... улет полный.

 

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Alexino пишет:

Евгений, понимаю что это бред, но оно так и есть...

kisoft, это всё уже проделано, читайте выше, папка создаётся. Но пока она существует, дальнейшая компиляция не проходит. Ошибки я выложил выше.

 


Как угодно, у меня работает без гемора.

Alexino
Offline
Зарегистрирован: 29.12.2015

Я понимаю, что у Вас всё работает, я рад за Вас. Но у меня, к сожалению, нет.

Сейчас не могу всё вернуть обратно. Кто знает, где находится общий файл preferences.txt (там вот такой файл должен быть - https://github.com/arduino/Arduino/blob/master/build/shared/lib/preferences.txt ) ? Помню, я там раскомменчивал строку "build.path=build", а теперь даже файла найти не могу :( Теперь у меня по-умолчанию build кладётся рядом со скетчем.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Мой лежит под юзером в Local Settings\Application Data\Arduino15

Alexino
Offline
Зарегистрирован: 29.12.2015

У меня там тоже есть какой-то файл с таким именем, но это немного не то.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Ушёл за попкорном

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Alexino пишет:

Кто знает, где находится общий файл preferences.txt 

В меню IDE открываете "Настройки". Там, ближе к низу, есть путь к этому файлу. Если кликните на путь - фолдер откроется.

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

Alexino пишет:

Я понимаю, что у Вас всё работает, я рад за Вас. Но у меня, к сожалению, нет.

Сейчас не могу всё вернуть обратно. Кто знает, где находится общий файл preferences.txt (там вот такой файл должен быть - https://github.com/arduino/Arduino/blob/master/build/shared/lib/preferences.txt ) ? Помню, я там раскомменчивал строку "build.path=build", а теперь даже файла найти не могу :( Теперь у меня по-умолчанию build кладётся рядом со скетчем.

слушай, если ты не в состоянии найти файл в своём компьютере, то зачем ты вообще пытаешься заниматься программированием? - у тебя ничего не получится, у тебя всё потеряется.

Alexino
Offline
Зарегистрирован: 29.12.2015

Пытаюсь заняться ? Ха-ха-ха, не смеши мои тапочки. Мне твоя ардуина в х.. не ботала.
По поводу IDE, всё уже решилось. И вина в том не моя, что её создавали криворукие и узкоглазые программеры. Меня бы за такую работу за яйца повесили...

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

Alexino пишет:

Пытаюсь заняться ? Ха-ха-ха, не смеши мои тапочки. Мне твоя ардуина в х.. не ботала.
По поводу IDE, всё уже решилось. И вина в том не моя, что её создавали криворукие и узкоглазые программеры. Меня бы за такую работу за яйца повесили...

вот оно чо, Михалыч(с)

*подвесь себя сам за яйца, что не в состоянии найти файл на компьютере, кретин.

Alexino
Offline
Зарегистрирован: 29.12.2015

Я бы тебя подвесил, был бы ты рядом, и язык бы тебе вырвал, хуйло. Я тебя не оскорблял, какого хуя ты говоном из своего рта брызгаешь в мою сторону ?
Ты вообще посты с вопросами читаешь, дурёнь ? Нахер мне твой файл нужен, который находится в настройках IDE ? Или может скажешь, как именно в этом файле сделать так, чтобы компиль создавал выходные файли в темповской папке, как при начальной конфигурации ? Еблан.

ЕвгенийП пишет:

В меню IDE открываете "Настройки". Там, ближе к низу, есть путь к этому файлу. Если кликните на путь - фолдер откроется.

Повторюсь, этот файл у меня есть. Это не то. В том файле была закомментирована строка символом #. Точно помню, что файл находился в папке с самой IDE, где то в C:\Program Files (x86)\Arduino. Сейчас не помню что это за файл был. При раскомментировании строки, выходные файлы стали создаваться рядом с файлом .ino в паке build. Потом, какого то лешего, всё это хозяйство перестало работать, а файлы начали создаваться в system32.
Затем я зашёл в файл preferences.txt и сменил build на "./". Файлы стали создаваться рядом, но была проблема с компиляцией. Затем я в файле preferences.txt возвращаю всё на места, но нихрена ничего не меняется, как папка build создавалась рядом, так и создаётся. И проблема с компиляцией не ушла. Снёс всё, переустановил - всё осталось.
И весь этот геммор ради того, чтобы помогать людям. Представляю, как вешаются те, кто вообще далёк от этого всего...

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

Alexino пишет:

Я бы тебя подвесил, был бы ты рядом, и язык бы тебе вырвал, хуйло.

Еблан.

Alexino пишет:

Меня бы за такую работу за яйца повесили...

ты точно уверен, что тебе контроллерами нужно заниматься, а не в живодёрне работать?

Alexino
Offline
Зарегистрирован: 29.12.2015

Я ими занимаюсь уже порядка 10 лет, может чуть побольше, пишу под них чисто на Си, начинал с ассемблера.
Мне именно ардуины нафиг не нужны, это всё чисто ради помощи людям. Только вот помочь даже не получается, один гемморой наживаю с этим дуинами.
На форумах:
Паяльник - ник Alex
Радиокот - ник Alex
http://forum.chipmk.ru - ник Alex

Заходи на любой, пиши в личку, пообщаемся. Может выясниться, кто из нас кретин в этом вопросе.

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

Alexino пишет:

Я ими занимаюсь уже порядка 10 лет, может чуть побольше, пишу под них чисто на Си, начинал с ассемблера.
Мне именно ардуины нафиг не нужны, это всё чисто ради помощи людям. Только вот помочь даже не получается, один гемморой наживаю с этим дуинами.
На форумах:
Паяльник - ник Alex
Радиокот - ник Alex
http://forum.chipmk.ru - ник Alex

Заходи на любой, пиши в личку, пообщаемся. Может выясниться, кто из нас кретин в этом вопросе.

нафиг мне твоя автобиография - мне достаточно, что ты не в состоянии найти файл на своём компьютере и входишь в состояние берсерка, когда тебя обвиняют в полном непрофессионализме как ползателя компьютера и тем, более какого-то чего-то под чем-то пейсателя кода.

Alexino
Offline
Зарегистрирован: 29.12.2015

Клапауций 322 пишет:

нафиг мне твоя автобиография - мне достаточно, что ты не в состоянии найти файл на своём компьютере и входишь в состояние берсерка, когда тебя обвиняют в полном непрофессионализме как ползателя компьютера и тем, более какого-то чего-то под чем-то пейсателя кода.

А чё тогда про контроллеры заикнулся ?
И про файл. Повторить ещё раз, или всё-таки почитаешь посты ? 
Или ты экстрасенс и ищешь у себя отсутствующие на компе файлы с лёгкостью ? Научи.
С компом я на "ты" с того момента, когда он тебе ещё даже не снился. Твои обвинения в моём непрофессионализме - необоснованы. 

PS: Ещё раз говорю - хочется пофлудить - приходи на любой форум в личку, пообщаюсь с удовольствием.
По крайней мере, не будешь выглядеть тявкающей из-за угла шавкой, к которой поворачиваешься, и она обсираясь бежит сломя голову.

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

Alexino пишет:

А чё тогда про контроллеры заикнулся ?

потому, что не умеешь искать файлы.

Alexino пишет:

И про файл. Повторить ещё раз, или всё-таки почитаешь посты ? 
Или ты экстрасенс и ищешь у себя отсутствующие на компе файлы с лёгкостью ? Научи.

ну, как так?

Alexino пишет:

С компом я на "ты" с того момента, когда он тебе ещё даже не снился. Твои обвинения в моём непрофессионализме - необоснованы. 

железобетонно обоснованы твоим неумением искать файлы.

Alexino пишет:

PS: Ещё раз говорю - хочется пофлудить - приходи на любой форум в личку, пообщаюсь с удовольствием.
По крайней мере, не будешь выглядеть тявкающей из-за угла шавкой, к которой поворачиваешься, и она обсираясь бежит сломя голову.

тут давай про подвешивания за яйца, вырывания языков, пр. - не было ещё такого, любители попкорна с кровищей найдутся поржать с профессионального жыводёра.

Alexino
Offline
Зарегистрирован: 29.12.2015

Ты, по-моему глухой. Ну или слепой, хз... Прочти посты ещё раз. Нахер мне сдался твой preferences.txt ?
Ты скажи сразу, сколько тебе раз повторить ? Я сразу повторю, чтобы не мучаться. Или может ты просто на стольо туп, что спорить с тобой - самому только тупеть ?
Пойду ка я лучше займусь более полезными делами, чем кормить тупых троллей. А тебе советую ещё раз почитать посты сверху и немного подумать, если конечно есть чем.
Собственно, твоя компетентность в этом всём деле уже давно была понятна, ещё когда ты всем подряд советовал искать в интернете всяческие ненужные библиотеки, коим, по всей видимости, ты занимаешься регулярно. Не зря ты за несколько последних постов многократно употребил слово "найти". Так что, уважаемый, мне с тобой дальше не о чём разговаривать. Твой ум находится в районе школьника 4-5 класса.

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

Alexino пишет:

Ты, по-моему глухой. Ну или слепой, хз... Прочти посты ещё раз. Нахер мне сдался твой preferences.txt ?

ты в нём шото наглючил не можешь его найти

Alexino пишет:

Сейчас не могу всё вернуть обратно. Кто знает, где находится общий файл preferences.txt 

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Alexino, если Вы не будете вести себя по-хамски и будете слушать, что Вам говорят, я готов Вам помочь. На радиокоте у меня такой же ник, как и здесь. Пишите там в личку. Если нет, то можете игнорировать это сообщение. И, да, я не собираюсь обсуждать кривость ArduinoIDE, это не поможет в решении проблемы, да и времени у меня не так много, как хочется, чтобы обращать внимание на ерунду.

 

Alexino
Offline
Зарегистрирован: 29.12.2015

На счёт по-хамски. Заметьте, я спокойно общался, пока один тролль не стал кидать оскорбления в мою сторону. Всё неадекватные слова относятся только к нему.
Вообще, на форуме бардак. Подобных троллей на нормальных форумах сразу отправляют в баню без всяких разговоров. По всей видимости, они и трутся на таких форумах как этот.

На счёт времени. У меня у самого его не так уж и много, начал разбираться с дуинами только потому, что на форумах частенько по ним задают вопросы, а помочь хочется. Сами дуины покупать нет никакого желания, собираюсь всё отлаживать в протеусе, и тут засада.

kisoft, в личку обязательно сейчас стукну. Спасибо за попытку помочь. 

С форума этого дёргаю, не люблю когда в окружении находятся безнаказанные тролли.