指向对象指针的空指针
Void pointer to object pointer
我正在为C++的mbed微控制器开发GUI,我遇到了一些问题。
情况是: 具有小部件虚拟父函数的不同小部件类(按钮、滑块等)。然后是一个虚拟函数布局,其中包含诸如(gridLayout,...)之类的类。布局具有 layout.add(*widget) 等函数,用于将小部件指针添加到矢量。 然后,我有一个控制器函数来处理触摸事件,并使用当前活动布局在触摸的x,y坐标处检查布局中的正确小部件是什么。
现在我想添加一个指向小部件类中布局的指针,以便控制器类可以在需要时更改 activeLayout。还有一个函数指针,因此控制器可以在使用小部件时运行某个函数。
现在问题是:我想做这样的事情:
Button::Button(char* text_, int color_, void *function_, Layout *layout_): text(text_), color(color_), function(function_), layout(layout_){}
但是我需要包含布局类,并且布局类已经包含小部件类 -->错误!最简单的方法是什么?我已经尝试了 void* 指针,然后是布局的静态投射,但这不起作用。
我还需要在每个小部件和布局中包含 TFT 类,最简单的方法是什么?现在我只有一个 Display.h:
#ifndef DISPLAY_H
#define DISPLAY_H
static SPI_TFT Screen(LCD_SDI, LCD_SDO, LCD_SCK, LCD_CS,"Screen");
#endif
但我真的不认为这是做这样的事情的正确方法。
非常感谢您的帮助!
解决方案是:在每个类中使用前向声明。class Layout;
然后对于TFT课,我不得不使用extern SPI_TFT Screen;
,在我的主要.cpp我做了SPI_TFT Screen(LCD_SDI, LCD_SDO, LCD_SCK, LCD_CS,"Screen");
(非常感谢t.niese,Lightness Races in Orbit和Jan Hudec)
相关文章:
- C++:将值 int(例如:0x00AAFAD8)转换为指针(指针本身也是 0x00AAFAD8 值)
- 空指针常量 (nullptr)、空指针值和空成员指针值之间有什么区别?
- 小于非空原始指针和空点之间的运算符
- 未分配正在释放的指针 - 指针问题
- 我应该如何定义返回指针的函数?(引用指针与指针指针)
- 空弱指针enable_shared_from_this
- 指针?指针功能
- 简单的功能大小;了解指针-指针差异
- 当我删除指针指针时会发生什么
- 将向量向量转换为指针指针
- 理解c++中的指针指针以获得函数调用
- 在指针指针中更改价值
- 指针指针,动态内存分配
- 将共享指针的别名构造函数与空共享指针一起使用C++
- 如何在不取消引用指针的情况下返回指针指针值?
- Visual Studio C++ 空字符串指针
- 指针指针:std:vector vs. 数组
- C :指针与指针指针在二进制树中插入节点
- 无法将空函数指针作为模板参数传递
- 空*到指针