| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Ц++ САМО един клас http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=17965 |
Страница 1 от 1 |
| Автор: | TheWizard [ Пет Авг 13, 2021 1:43 pm ] |
| Заглавие: | Ц++ САМО един клас |
как са прави тва по "най-хитрия" начин? |
|
| Автор: | michev [ Пет Авг 13, 2021 1:55 pm ] |
| Заглавие: | Re: Ц++ САМО един клас |
Не става ясно за какво питаш. За единствена инстанция (singleton) на клас или? |
|
| Автор: | TheWizard [ Пет Авг 13, 2021 3:56 pm ] |
| Заглавие: | Re: Ц++ САМО един клас |
да де |
|
| Автор: | michev [ Пет Авг 13, 2021 4:02 pm ] |
| Заглавие: | Re: Ц++ САМО един клас |
Private constructor, публичен статичен метод за инстанциране, например getInstance(), който създава инстанция на класа в статична член променлива и я върща. Не създава инстанция ако вече променливата не е NULL. |
|
| Автор: | TheWizard [ Пет Авг 13, 2021 7:00 pm ] |
| Заглавие: | Re: Ц++ САМО един клас |
знам че така ще кажете "... публичен статичен метод за инстанциране ..." всъщност проблема ми е С колбак вика СРР... за ся getInstance() нящо не ме кефи ма кат имам време ще си пренапиша С драйвера дирек на СРР мерсаж |
|
| Автор: | gicho [ Пет Авг 13, 2021 9:56 pm ] |
| Заглавие: | Re: Ц++ САМО един клас |
Не става - не можеш да викаш директно метод от обект като колбек, в смисъл да вземеш функционален пойнтър към метода и да жулиш. https://blog.mbedded.ninja/programming/languages/c-plus-plus/callbacks/ |
|
| Автор: | slav4o.com [ Пет Авг 13, 2021 11:14 pm ] | |||||||||
| Заглавие: | Re: Ц++ САМО един клас | |||||||||
Интересно. Не е ли логично всяка инстанция на класа (обект) да си пази нейно копие в паметта на програмния код на метода, модифицирано да работи точно с неговите данни ? Демек вземаш указател от конкретната инстанция на метода в паметта и стартираш този конкретен блок от код ? Или това не е имплементирано така заради икономия на памет ? edit: сам си намерих отговора
|
||||||||||
| Автор: | TheWizard [ Пет Авг 13, 2021 11:24 pm ] |
| Заглавие: | Re: Ц++ САМО един клас |
нещо като [6] се опитах да направя... накрая като го видях - го изтрих за Ардуино библиотека ми се строи твърде сложно, по-точно - разхищение на ресурс всъщност OpenThread работи като 6 class Instance{ съдържа всички СРР клас "драйвери" като "променливи" } а драйверите са на С с предаване на статична инстанция extern "C" void c_callback(Instance * h){ Instance::Get<class_type>().cpp_callback() .... нящо такова и тва Instance * h се подвизава във всички С драйвери ... имитира *this } но самия модел си е за OpenThread те има много драйвери, аз имам само един ще пренапиша драйвера на СРР га имам време |
|
| Автор: | slav4o.com [ Съб Авг 14, 2021 12:40 am ] |
| Заглавие: | Re: Ц++ САМО един клас |
Не може ли да се напише един междинен CPP клас със статичен метод Run(): като callback да се подава Run(), а вътре в Run-a да се вика по стандартно му инстанционния метод ? |
|
| Автор: | TheWizard [ Съб Авг 14, 2021 8:21 am ] |
| Заглавие: | Re: Ц++ САМО един клас |
сигур може, но май пак ще стане нещо от "списъка" на Гичо зора в тази гимнастика е да предам параметрите от колбака на класс библиотеката тва е радио С драйвер с RX/TX колбаци ( супер луп, няма ISR ) a параметрите са дейта и грешки драйвера го "откраднах" от OpenThread - щото не го разбирах... и го правя на Ардуино библиотека |
|
| Автор: | TheWizard [ Съб Авг 14, 2021 12:07 pm ] |
| Заглавие: | Re: Ц++ САМО един клас |
мии - пренаписах го на СРР ... пърфект тряя само да го блокирам класа ... singleton |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|