ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
26 апреля
709810 Топик полностью
mmc (31.10.2016 19:26, просмотров: 152) ответил Скрипач на Троллинг какой-то абсолютно унылый. Без искорки. Вы устали?
На мой взгляд sizeof(machine) выдаст размер массива в байтах. Размер указателя скорее всего не 1 байт. А вообще я Вас поддерживаю. Пишу под IAR для stm32, использую C++ и наследование. Без фанатизма, но использую. Вот пример реального базового класса, который я использую. class TListView { private: int m_cur_pos; int m_init_pos; u8 m_cur_line; u8 m_num_lines; u8 m_step_lines; char *m_header; portTickType WheelPressTime; void DrawSelector(u8 y); void ClearSelector(u8 y); void DrawScrollbar(void); public: TListView() { m_cur_pos=0; m_init_pos=0; m_cur_line=0; m_header= 0; WheelPressTime=0; } void PaintScreen(void); u8 ProcessKeys(u8 key); void SetHeader(char *val) { m_header= val; } void SetInitPos(int val) { m_init_pos= val; } virtual int GetCount(void) { return 0; } virtual char *GetItem(int index) { return 0; } virtual int GetPos(void) { return m_cur_pos; } }; Так он используется const int cnt= 12; char *a[cnt]={ "Item1", "Item2", "Item3", "Item4", "Item5", "Item6", "Item7", "Item8", "Item9", "Item10", "Item11", "Item12"}; class TExList: public TListView { public: virtual char * GetItem(int index) { return a[index]; } virtual int GetCount(void) { return cnt; } }; А в другом месте так static char *seal_list; static int seal_list_count= 0; class TSealListView: public TListView { public: virtual char * GetItem(int index) { return &seal_list[index*16]; } virtual int GetCount(void) { return seal_list_count; } };