トップページ⇒tech
21コメント4KB

C++ではどうすんの?

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん NGNG
今読んでるC++の本にちょっとした小技として、インスタンスを
作らないで関数を呼び出す方法として、Class Util を作って
その中の関数を全部 static にするやり方が載ってました。

そこに、”3つあるやり方の代表的なものとして”って出てる
んだけど、他のやり方って・・・・
気になる。
0002デフォルトの名無しさんNGNG
出るまでこすります。
0003デフォルトの名無しさんNGNG
>>1
3つって言うのは嘘だろ〜
0004デフォルトの名無しさんNGNG
おやつは300円までです。
0005デフォルトの名無しさんNGNG
バナナはおやつに入るよ
0006デフォルトの名無しさんNGNG
友達
0007デフォルトの名無しさんNGNG
参考URL
http://piza.2ch.net/test/read.cgi?bbs=tech&key=975576060
http://piza.2ch.net/test/read.cgi?bbs=tech&key=980175292
0008デフォルトの名無しさんNGNG
>>1
よう分からんが、friend 使ってなんか出来んじゃないのか?
0009デフォルトの名無しさんNGNG
NULLを無理矢理クラスポインタにキャストして
関数を呼び出すとか?
但しプロパティをアクセスした時点であぼ〜んだけど(藁
0010デフォルトの名無しさんNGNG
小技っていうか、それサイアクの設計。
0011デフォルトの名無しさんNGNG
こ、小枝?
0012デフォルトの名無しさんNGNG
Util を abstract にして virtual 関数を入れる。
0013デフォルトの名無しさんNGNG
namespaceじゃだめなの?
0014デフォルトの名無しさんNGNG
新しいファイルに static な external 関数を作る。
駄目?
0015デフォルトの名無しさんNGNG
推奨できない方法の1つ。
嘘のthisポインタを作って騙す。

CHoge *pHoge = reinterpret_cast<CHoge *>(0x12345678);
pHoge->Aho();
001615NGNG
仮想関数の場合はクラッシュする。
ていうかネタ。
0017デフォルトの名無しさんNGNG
>>15
9と同じ事じゃん。
もう1つ何か方法無いかな。
0018デフォルトの名無しさんNGNG
すまんが、俺にはどうもインスタンスを生成せずにメンバ関数を呼ぶメリットが思いつかない。
データメンバにアクセスしないなら最初からstaticにするかクラスに含む必要はないのでは?
>>10でガイシュツだが…
0019デフォルトの名無しさんNGNG
C++なら、素直に関数作ればいいじゃん。

グローバル変数をクラス内に閉じ込めたいという意図なら、
namespace とか開発技法でどうにかすればいいと思うし。
0020デフォルトの名無しさんNGNG
class Util{
virtual void dummy(){} = 0;

...
...
};

でって、C++もう忘れちゃった・・・
0021デフォルトの名無しさんNGNG
>>19
同意。
■ このスレッドは過去ログ倉庫に格納されています