Всем доброго дня. Кто нибудь на ардуине классы писал? можете помочь у меня пишет что класс не декларирован void setup() { Test aa(); } void loop() { } class Test{ public: Test(){ } void setA(int a){_a=a;} int getA(){return _a;} private: int _a=3; }; вот такое пишет exit status 1 'Test' was not declared in this scope
Комментарии: 70
Aleksandr
Так ты либо прототип напиши, либо объяви его раньше
Igor
подскажи где и как
Roman
нахера ты классы используешь а
Ratmir
бред написал, а не класс. class Test { public: Test(); void setA(int a); int getA(); private: int _a; }; class Test { Test::Test(){_a=3;} void Test::setA(int a){_a=a;} int Test::getA(){return _a;} } учись классы писать. гугли доки с++
Roman
зачем классы в ардуино?
Alexey
Удобно иногда. Например статический класс чтобы не засирать все глобалками.
Ratmir
у меня на esp их, пока что, 3. и что?
Igor
а можно сказать что с классом не так?
Vasiliy
Ребят всем привет вопрос на засыпку void setup() { Serial.begin(57600); byte a; a=60; Serial.println(String(a*1000)); } void loop() {}
Ratmir
ты декларацию с реализацией смешал. ещё раз говорю: кури доки с++
Vasiliy
Вы знаете что в консоль выведет ? )
Ratmir
букву или цифру
Vasiliy
число а теперь угадайте какое
Ratmir
лень считать
Alexey
-27233
Anonim
60000
Vasiliy
нет -5536 а теперь вопрос... какого сбстна х.я
Roman
ибо нехуй
Vasiliy
че за дичь такая я понимаю что в инт переводит знаковый
Roman
длина байта
Vasiliy
но блин - этож капец как не правильно нельзя сделать чтоб хотя бы в unsigned int переводил ?
Roman
переведи
Ratmir
ты дурак и байт сравниваешь с инотом вот вся проблема
Vasiliy
так это ладно я тут случайно заметил - целый день убил на это... а в других местах
Vasiliy
причем тут сравниваю = у меня банально условие не проходит byte a=30; if (a*1000>20000) {....} не срабатывает
Ratmir
потому что это байты, а не инты. олух
Vasiliy
байты инты... в условии то какая разница
Roman
ходишь по тонкому льду
Vasiliy
чет я не видел в других ЯП такой дичи
Andrey
ну так напиши явно typecast
Alexey
Числа считаются с начала диапазона. Если брать 16-битные инты, то Unsigned = 0,1,2,3,4...65535; Signed = -32768, -32767, -32766, ...+32767 Последний бит (самый левый) отвечает за знак. Соответственно число больше 32767 ( последний бит = 1 ) при рассмотрении его двоичной формы как знаковой, будет отрицательным. Это значит что оставшиеся 15 битов - это количество которое надо отсчитать от минимума (т.е. от -32768) 60k = 1110 1010 0110 0000 1 бит знаковый, остается 110 1010 0110 0000 = 27232 Выводит оно -32768 + 27232 = -5536
Orca
Всё таки не лень посчитать. Красавчик! В postgresql надысь тоже тип подбирал. SmallInt 16-битный именно такой диапазон может хранить. Челу, походу сложно 2**16 возвести =) Как, бля люди программируют контроллеры, не вкуривая за структуры данных. Это ж просто копипаста со стековерфлоу.
Teegeron
Гайвер всему вина А если серьезно, то нормально вкурил все типы данных через 2 года после того как познакомился с Ардуино. С книжки. А все потому что обучение идет по видосах с ютуба, где снимают "для маленьких и глупых", не нагружая лишней инфой. Для простоты и роста аудитории. Зачем понимать какая переменная знаковая, а какая - нет? Заучи себе юзать инт всегда, пока не столкнешься с огромным числом. А там просто uint заюзай, не спрашивай, просто так надо.
Orca
Так то, может и есть. Думаю, что хотят всё и сразу. Волшебный чекбокс в настройках среды. Мол Урри, где у него эта кнопка? =)
Remen
Да, удивительное сочетание высокоуровневой электроники и низкоуровнего программирования...
Teegeron
Это от части хорошо. Типа они показывают, что даже если ты полное дно - у тебя может что-то получиться. Порог входа очень низкий, учись только копипастить и искать инфу. Но потом, у таких "программисторов" дикие пробелы в базе, о которых они не догадываються вообще. Ну, я сужу по себе. Начать с Арду было прикольно, это зажгло огонь кодить, позже - изучать ++, но пробелы в знаниях я заполняю до сих пор, хотя чисто формально я с год назад закончил видеокурсы по с++ включая ооп. Узнавая о структуре программ, данных, записи в память, о самой памяти и куче еще всего - буквально в последние пол года с книжки Столярова.
Orca
Весьма зачётный дядька. Тоже почитывал. Паскаль почти весь из 1 тома прошёл, потрогал асм и си и пошёл дальше Python'а мучить =)
Orca
А что за курсы? Сам на степике и курсере проходил. На курсере офигенный курс начал, про обработку звука в опенсорцном аудиоредакторе. Но как до рядов Фурье дошло, я понял что это за вызов
Anonim
Из интересного, могу дать инвайт на полный курс Яндекс практикум Дата-Аналитик. Курс, правда, относительно платного немного порезан, но за бесплатно супер)
Orca
Спасибо, конечно, но пока асинхронщине, многопоточности и процессорности не научусь, что б прям от зубов, к бигдате не притронусь =)
Anonim
Alexander
Нет
Teegeron
Да на ютубе, от Simple Code Сжечь!
Alexander
Документация к языку это слишком просто. Изучай методом тыка
Teegeron
Согласен, 3й глаз еще никому не мешал. Наверное.
Roman
!burn
Igor
ок но я читал вот тут https://alexgyver.ru/lessons/class/
Vasiliy
не сравниваю
Roman
читай страуструпа, а не еблана
Igor
смело я немного другого мнения про Алекса Гавера учитывая то что он делал и делает и количество его работ с ардуино. Ладно покурим доки с++
Roman
количество != качество
Vasiliy
точно нет никаких настроек IDE чтоб в беззнаковый инт переводило ?
Roman
бля
Roman
иди почитай про типы данных. желательно на офсайте ардуино.
Ratmir
мб бред написан. читай с++