我正在開發一個用於C++的mbed微控制器的GUI,我有一些問題。無效指針指向對象指針
這種情況是: 不同的窗口小部件類(按鈕,滑塊...)與小部件虛擬父功能。然後是一個虛擬函數佈局,也有類似(gridLayout,...)的類。該佈局具有像layout.add(* widget)這樣的功能,以將小部件指針添加到矢量。 然後我有一個處理觸摸事件的控制器函數,並使用當前活動佈局來檢查觸摸的x,y座標處佈局中的正確小部件是什麼。
現在我想在widget類中添加一個指向佈局的指針,這樣控制器類可以在需要時更改activeLayout。還有一個函數指針,這樣控件可以在使用小部件時運行某個函數。
現在的問題:我願做這樣的事情:
Button::Button(char* text_, int color_, void *function_, Layout *layout_): text(text_), color(color_), function(function_), layout(layout_){}
但後來我需要包括佈局類和佈局類已經包含了Widget類 - >錯誤!什麼是最簡單的方法來做到這一點?我已經嘗試過無效*指針,然後靜態轉換爲佈局,但沒有奏效。
我還需要在每個小部件和佈局中包含TFT類,那麼最簡單的方法是什麼?現在我只有一個Display.h:
#ifndef DISPLAY_H
#define DISPLAY_H
static SPI_TFT Screen(LCD_SDI, LCD_SDO, LCD_SCK, LCD_CS,"Screen");
#endif
但是我不認爲這是做這種事的正確方法。
非常感謝您的幫助!
所以C ** XOR ** C++?在兩種語言中,'void *'的用法根本不同**。 – 2014-01-26 18:10:57
對不起,它是C++(補充說它是C++中的主題 – Jannes
我不確定我是否正確理解你的問題,但我認爲你正在尋找_forward類的聲明_(class Layout;') –