× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 |
クラス間のアクセスの方法についてはえらく悩むところだ。
パチスロ制作にも言えるところだが、実はリールコントローラにprivateの形でリールのインスタンスを入れているが、これに入賞時のリール制御クラスでアクセスしたいと思っている。しかしながら、これには3つの方法がある。 1 CCtrlReelへのポインタを取得し、CCtrlReelからリール操作を行う 2 CCtrlReelにfriendを入れてリール制御クラスからのprivateアクセスを行う。 3 CCtrlReelとリールのポインタを取得し、privateアクセスを行う。 私はまず1を除外しようと思った。手間がかかりすぎる。 なによりリールコントローラが肥大化するのはシステム全体に悪影響を与えるからだ。 次に、悩んだが2を消去法で消すことにした。friendは嫌いだ。privateにアクセスさせるなんて冗談ではない。 クラス全体をデバッグするなんて冗談ではない。 そのため、結局は3にすることにしたのだが、さて悩んだのはポインタを包む構造体の名前だ。 同種のポインタが二つもあるのにまとめないことはよくない。 さて、どうしようか。 tagPtCtrlReel? ・・・ひどい名前だ。 HandleCtrlReel・・・ハンドルではない。論外。 PtCtrlReel・・・まぎらわしい。二つあるんだから。 AccessCtrlReel・・・長いよ!!! いやー。どうしような。 PR |
寝ぼけから覚めたよ。ああ。
std::string tmp(1,p); これでいいんだ。ああ。 さて、寝よ。 ああ、そうそう。 この方法だとp==\0だとtmp.length()で1を返すから気をつけてくれ。 あえて\0を警戒するようならこうすればいい。 std::string tmp(1,p); tmp = tmp.c_str(); 一応私がテストしたところこれでゴミはとれる。 しかし、c++のchar->std::string変換は嘘が多いな。 ほかのサイトでいくつもコンパイルできなくて癪に障ったよ。 せめてテストぐらいしろっての。イラッ☆ 眠気で語調が乱れてるがもう寝る。おやすm |
ああ、面倒くさいから俺はやっちまったぜ。
c++の迷問 charとstd::stringの変換をよぉ…… std::string ctos(char c){ char a[2]; a[0] = c; a[1] = '\n'; return a; } うん。なんかいい方法があるかもしれんが、もういい。 俺は寝る。 |
| ホーム |
|