想仿命令列,所以定義了乙個類,讓乙個string 對應乙個 function,將兩者輸入list容器。
類中定義了
qstring commandstr;
void (mainwindow::*commandfun)(void);乙個qstring ,乙個指向mainwindow類成員函式的指標。
但是沒想到在類中使用函式指標這麼複雜。 一般情況,我們使用函式指標宣告和引用都很簡單明瞭。但是在類中就不一樣了。
最後的成功的形式如下:
class command_typeqstring commandstr;
void (mainwindow::*commandfun)(void);
};class mainwindow : public qmainwindow
mainwindow::mainwindow(qwidget *parent) :
qmainwindow(parent),
ui(new ui::mainwindow)
}}
宣告:
void (mainwindow::*commandfun)(void);相對於普通的函式指標宣告,這裡要加上mainwindow::,不同的類不能通用。
引用:
(this->*(c.commandfun))();相對於普通的函式指標引用,這裡必須要this指標。如果是在其他類或者main函式中使用,則必須用物件引用(物件才有實際記憶體空間)。
Qt 中使用智慧型指標
教研室的專案,就是用qt做個圖形介面能收發資料就可以了,但是建立資料管理類的時候需要各種new,delete,很小心了但是記憶體使用量在不斷開關程式之後函式會長,由於用的是gcc 4.7.所以好像沒有shared ptr可以用,上網查了一下原來qt也有智慧型指標。常用的有 qscopedpointe...
C 中使用函式指標
最近專案上遇到這樣的情況,前端發起請求,我這邊需要根據請求中的url判斷呼叫哪個函式方法,由於請求方法時字串,於是乎,一堆if else就出來了,如下所示 if uri abc else if uri bcd 說實話,如果請求的型別少這個if else結構都還好,不是很多,但是有幾十上百個請求的時候...
c 容器 vector map 中使用函式指標
我要動態生成mfc選單,動態繫結響應命令。include stdafx.h include include include string using namespace std 宣告乙個函式指標 int pfunc int int func1 int nin int func2 int nin ty...