作者jimmy2266 (2266)
看板C_and_CPP
标题[问题] 指标很难懂,请问这个指标function是什麽?
时间Sun Mar 29 21:33:16 2009
之前有问过 function pointer 如此种型式 bool (*compare)( int, int )
今天又看到另一种型式:
CButton* radio1 = ( CButton* )GetDlgItem( IDC_RADI01 );
^^^^^^^^^^^^
箭头那个地方代表什麽-.-,看起来有点像function pointer,可是应该不是
请问这个用法叫做什麽,整段的意思又是什麽~.~
指标真的会搞死人-.-
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.62.203.138
1F:→ james732:它只是做一个转型的动作而已 03/29 21:34
2F:推 gundan:类似 double a = (double)b; 这样吧 03/29 21:35
3F:→ jimmy2266:请问 这样是什麽型转什麽型?? 03/29 21:47
4F:推 QQ29:你看过 double *a=(double*) GetInt();这样吧? 03/29 21:50
5F:→ QQ29:GetDlgItem回传型态 转成 CButton* 03/29 21:51
6F:→ james732:补充一下 GetDlgItem 回传 CWnd * 03/29 21:52
7F:→ james732:而 CWnd 是 CButton 的祖宗之一 03/29 21:52
8F:→ jimmy2266:所以 传回的是 CWnd* 可以把他转成 CButton* 阿-.- 03/29 21:55
9F:→ jimmy2266:小蚂蚁都没教..... 03/29 21:55
10F:→ james732:我相信在继承的章节有提到 但你不知道这是同一件事 03/29 21:56
11F:→ jimmy2266:可能还没看到吧 小蚂蚁超大一本-.- 03/29 21:57
12F:→ firose:cast operator 可以随便你转 03/29 22:06
13F:→ firose:不过 GetDlgItem 实际传回的是一个 CWnd 的包装 (wrapper) 03/29 22:06
14F:→ firose:作 downcast 满危险的, 比较保险的是用 Attach 03/29 22:07
15F:→ firose:CButton radio1; radio1.Attach(GetDlgItem(IDC_RADIO1)); 03/29 22:08
16F:→ firose:处理完再呼叫 CWnd::Detach 03/29 22:09
17F:→ firose:直接 cast 没问题是因你呼叫的函式都没用到按钮的专属成员 03/29 22:11