スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。
過去ログ
01 http://pc11.2ch.net/test/read.cgi/tech/1167476845/
02 http://pc11.2ch.net/test/read.cgi/tech/1178503366/
03 http://pc11.2ch.net/test/read.cgi/tech/1187521676/
04 http://pc11.2ch.net/test/read.cgi/tech/1221633708/
05 http://pc11.2ch.net/test/read.cgi/tech/1230516307/
06 http://pc11.2ch.net/test/read.cgi/tech/1231564903/
07 http://pc11.2ch.net/test/read.cgi/tech/1232983248/
08 http://pc12.2ch.net/test/read.cgi/tech/1235921779/
09 http://pc12.2ch.net/test/read.cgi/tech/1240022781/
10 http://pc12.2ch.net/test/read.cgi/tech/1242300936/
11 http://pc12.2ch.net/test/read.cgi/tech/1245059383/
12 http://pc12.2ch.net/test/read.cgi/tech/1248010352/
13 http://pc12.2ch.net/test/read.cgi/tech/1260842197/
14 http://pc12.2ch.net/test/read.cgi/tech/1269273471/
15 http://pc12.2ch.net/test/read.cgi/tech/1273368706/
16 http://hibari.2ch.net/test/read.cgi/tech/1279285647/
17 http://hibari.2ch.net/test/read.cgi/tech/1285115590/
18 http://hibari.2ch.net/test/read.cgi/tech/1291571263/
19 http://hibari.2ch.net/test/read.cgi/tech/1308106024/
20 http://toro.2ch.net/test/read.cgi/tech/1316013463/
21 http://toro.2ch.net/test/read.cgi/tech/1342285511/
22 http://peace.2ch.net/test/read.cgi/tech/1399911167/
23 http://peace.2ch.net/test/read.cgi/tech/1420379468/
24 http://echo.2ch.net/test/read.cgi/tech/1448685034/
探検
スレを勃てるまでもないC/C++の質問はここで 25 [隔離病棟]©2ch.net
2016/08/14(日) 00:04:05.53ID:z6U1tRVC
2016/08/17(水) 13:13:38.39ID:rz4OYI8a
関数にstaticをつける必要がある場合その関数を仮想関数みたいに使うにはどうすればいいかな?
例えばSetTimerで指定する関数を派生クラス毎の機能にしたい
基底クラスでstatic付きの関数を定義して
その中でpublicな仮想関数を呼ぶとかがスマートなんかな?
例えばSetTimerで指定する関数を派生クラス毎の機能にしたい
基底クラスでstatic付きの関数を定義して
その中でpublicな仮想関数を呼ぶとかがスマートなんかな?
2016/08/17(水) 22:18:06.51ID:KqRj7kcI
基本部分の知識不足か説明不足で要領をえないな
> 関数にstaticをつける必要がある場合その関数を仮想関数みたいに使うにはどうすればいいかな?
そんなことをやろうとしなくても
派生クラス毎にstaticな関数を用意してSetTimerを呼び出すときにそれを登録すればいいだけでは
> 関数にstaticをつける必要がある場合その関数を仮想関数みたいに使うにはどうすればいいかな?
そんなことをやろうとしなくても
派生クラス毎にstaticな関数を用意してSetTimerを呼び出すときにそれを登録すればいいだけでは
2016/08/18(木) 08:40:43.37ID:nfE+KhhQ
>>3
別のstatic関数にthisポインタを保持させておいて
1回目のTimerでその関数を呼んでTimer内のstatic変数に保存したら
publicなら呼べると思ったけど
そうするのがいいんかなありがとう
別のstatic関数にthisポインタを保持させておいて
1回目のTimerでその関数を呼んでTimer内のstatic変数に保存したら
publicなら呼べると思ったけど
そうするのがいいんかなありがとう
2016/08/18(木) 17:06:15.70ID:9gCEAov3
いや言っている意味がよくわからんがこういう感じのじゃダメなの?
やりたいことがわからんからコールバック呼ばれたらKillTimerしちゃってるけど…
それともTimerProcAやTimerProcBでclass A や class B のメンバにアクセスしたいという感じ?
class A
{
private:
static void TimerProcA(HANDLE hwnd, UINT uMsg, UINT idEvent, DWORD dwTime){ KillTimer(NULL,idEvent); }
public:
A(){}
~A(){}
virtual void TimerCall(){ SetTimer(NULL,0,2000,(TIMERPROC)TimerProcA); }
};
class B : public A
private:
static void TimerProcB(HANDLE hwnd, UINT uMsg, UINT idEvent, DWORD dwTime){ KillTimer(NULL,idEvent); }
public:
A(){}
~A(){}
virtual void TimerCall(){ SetTimer(NULL,0,4000,(TIMERPROC)TimerProcB); }
};
やりたいことがわからんからコールバック呼ばれたらKillTimerしちゃってるけど…
それともTimerProcAやTimerProcBでclass A や class B のメンバにアクセスしたいという感じ?
class A
{
private:
static void TimerProcA(HANDLE hwnd, UINT uMsg, UINT idEvent, DWORD dwTime){ KillTimer(NULL,idEvent); }
public:
A(){}
~A(){}
virtual void TimerCall(){ SetTimer(NULL,0,2000,(TIMERPROC)TimerProcA); }
};
class B : public A
private:
static void TimerProcB(HANDLE hwnd, UINT uMsg, UINT idEvent, DWORD dwTime){ KillTimer(NULL,idEvent); }
public:
A(){}
~A(){}
virtual void TimerCall(){ SetTimer(NULL,0,4000,(TIMERPROC)TimerProcB); }
};
レスを投稿する
ニュース
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★5 [BFU★]
- 【千葉】コンビニに尿入りペットボトル並べた疑い、26歳男「むしゃくしゃして」…購入した客が飲もうとしたところ臭いに違和感 [ぐれ★]
- 【サッカー】U-17W杯 日本代表、無念のベスト8敗退… チャンスは多く作ったが仕留め切れず オーストリアに0-1で敗戦 [冬月記者★]
- 植田日銀総裁 「円安進行が物価高を起こしている」 ★4 [お断り★]
- 中国官製報道「日本経済はもう持たない」にネット民ツッコミ「ニュースだけ見てたら日本はもう百回くらい爆発してる」 [1ゲットロボ★]
- 【硬貨】500円だと思ったら「500ウォンが入っていた」価値は約10分の1 全国で飲食店などで“500ウォントラブル”相次いで報告 [ぐれ★]
- 現役JKのお茶会スレ( ¨̮ )︎︎𖠚ᐝ157
- 自分、馬鹿なのでおっしゃる意味がわかりません
- 【ぺこ専🐰】なんG 兎田ぺこら突発配信実況スレ🏡【ホロライブ▶】
- WTO世界のコメ🌾価格は記録的な豊作により1年で35%下落(5キロで200円程度)と発表※日本は1年で3倍値上がり [709039863]
- NHKニュースウオッチ9「日本側は対話にオープンな姿勢で安定した日中関係を築きたい考えなのに中国が意固地で糸口が見いだせない」 [904151406]
- 日中戦争起きたら5日で自衛隊壊滅するらしい。じゃあ徴兵も無いし、俺等が必死になって反対してやる理由なくね? [237216734]
