[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 07/15 20:46 / Filesize : 200 KB / Number-of Response : 834
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【初心者歓迎】C/C++室 Ver.35【環境依存OK】



1 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 21:36:23 ]
エスケープシーケンスやWin32APIなどの環境依存な物でもOK。
ただしその場合、質問者は必ず、環境を書きましょう。
※sageは禁止です。
【前スレ】
【初心者歓迎】C/C++室 Ver.34【環境依存OK】
pc10.2ch.net/test/read.cgi/tech/1169039760/
【アップローダー】(質問が長い時はココ使うと便利)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

237 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 23:51:42 ]
C なら

int f;
*(float*)&f = -2;
printf("%f\n", *(float*)&f);

C++ なら

int f;
(float&)f = -2;
printf("%f\n", (float&)f);

238 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 23:52:41 ]
C++ タイプのキャストを使うなら

int f;
reinterpret_cast<float&>(f) = -2;
printf("%f\n", reinterpret_cast<float&>(f));

だな。

239 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 01:07:25 ]
C++の機能を使わないで済むならC++の機能は使わない方がよい。

240 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 01:16:39 ]
Cの機能を使わないで済むならCの機能は使わない方がよい。
アセンブラの機能を使わないで済むならアセンブラの機能は使わない方がよい。

241 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 01:16:40 ]
int to short
*pt>> (8 * sizeof(int) - 16)

int to floart
*p<< (8 * sizeof(int) - 32)


242 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 01:21:29 ]
>>241
質問者はint型の変数をfloatの引数を持った関数に渡して
関数内でfloatからintに戻すって話だろ

243 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 01:42:08 ]
>>237
それってsizeof(int) < sizeof(float)のときにメモリ破壊しね?

244 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 02:17:41 ]
関数の引数にすると、キャストしても無駄だよ。
だから>>235の例は上手くいかない。


245 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 07:03:14 ]
そもそもサイズの違うかもしれないものにキャストしちゃいかんだろ



246 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 07:35:14 ]
環境はC++builderです。
CreatThreadを使用したマルチスレッドのアプリケーションを
ウィンドウの右上の×ボタンを、押して終了させたとき、
リソースとか全部開放されるのでしょうか?

247 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 10:00:08 ]
>>246
動的に確保したリソースは自分で開放

248 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 10:44:51 ]
>>247
はやいお返事、どうもありがとうございます。

249 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 14:52:28 ]
>>245
このスレは環境依存 OK なはずなんだが

250 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 16:26:53 ]
環境書いてないね

251 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 16:30:37 ]
そうだね、ぬるぽだね

252 名前:デフォルトの名無しさん [2007/03/01(木) 17:30:33 ]
C++てどこでDLするの

253 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 17:33:23 ]
>>252
C++の何がほしいんだ?

254 名前:デフォルトの名無しさん [2007/03/01(木) 17:42:23 ]
統合環境なら何でも

255 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 18:12:16 ]
そんなの探す前にコミュニケーション能力あげる方が先だな



256 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 18:44:22 ]
>>254
Microsoft Visual C++ 2005 Express Edition

257 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 19:08:40 ]
>>246
窓っ子として注釈しておくと、
プロセス(タスクマネージャで見れるプログラムの単位)が終了した段階で
すべてのリソースはキレイに開放される

窓を[×]で閉じる=プロセスの終了ならそれで問題ない
だからスレッドの終了やCloseWindowだけとかなら駄目だし、
精神論で言って理想的なのはもちろん>>247

258 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 23:03:49 ]
>>257
詳細に、どうもありがとうございます。
理解できました。

259 名前:デフォルトの名無しさん [2007/03/02(金) 23:16:03 ]
vector<T>を使って、Win32のアプリでクラスの配列を扱いたいんだが、
配列をグローバルに扱う方法がわかりません…
コントロールのハンドル等を扱うクラスなので、
初期化をウィンドウプロシージャ内で行いたいのですが、
どのようにすればいいのでしょうか。

260 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 23:19:01 ]
push_back、push_back

261 名前:259 [2007/03/02(金) 23:29:03 ]
ごめんなさい、push_back使うのはわかるのですが、
最初どこでどのように最初のメモリの確保を行えばよいのでしょうか。

262 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 23:33:14 ]
ヘッダで以下のように
typedef vector<T> vT;
extern vT *pvT;

どっかのcファイルで
static vT *pvT;

最初のメモリ確保は、WM_CREATEとかでnewしておけば良い。

263 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 23:37:04 ]
>>259
えーと、あるウィンドウに属するコントロールの配列を管理するんだろ?
何で「グローバル」である必要があるんだ?


264 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 23:42:22 ]
グローバル空間に

vector<T> v;

でいいんじゃないの?

265 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 23:42:26 ]
>>262
なぜポインタにする必要がある?



266 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 23:44:13 ]
>>262
staticな変数をexternしてもリンクエラーが出るだけな気が。

267 名前:デフォルトの名無しさん mailto:sage [2007/03/03(土) 00:20:41 ]
>>259
int型の変数だろうとvector<T>型の変数だろうと
グローバル変数の使い方は同じじゃね?

268 名前:デフォルトの名無しさん mailto:sage [2007/03/03(土) 00:24:21 ]
>>267
static配列は
int a[] = { 0, 1, .. };
のような配列初期化構文が使えるが、vector<T>では使えないという
違いがあるな。

vector<T>をstaticに初期化したいならば
int a[] = { 0, 1, .. }:
vector<int> v(&a[0], &a[N]);
のように書くしかないが、メモリの無駄だな。

が、今回のケースでは初期化はWinProc内で行いたいそうだから
どうでもいいんだな。

269 名前:デフォルトの名無しさん mailto:sage [2007/03/03(土) 00:25:57 ]
コントロールを動的に生成/消滅させるウィンドウでないのなら
単なる配列でいいんじゃないの?
要素数が固定なら、vector<>はオーバースペック。

270 名前:デフォルトの名無しさん mailto:sage [2007/03/03(土) 08:45:11 ]
>>268
仮にvector<int> v = {0, 1, ...};のような初期化ができるようになっとしても、
コンストラクタの呼出まで初期化子を静的に用意しておくことになるだろうから、
その実装はおそらくこう書くのと同じようになると思う。
int a[] = {0, 1, ...}:
vector<int> v(&a[0], &a[N]);

271 名前:デフォルトの名無しさん [2007/03/04(日) 00:41:25 ]
質問させてください。
C++によるオブジェクト間のメッセージ通信についてなんですが、
オブジェクトAがオブジェクトBを含有する構造の場合、
AからBへのメッセージ送信は、AがBのメソッドを呼び出すという形でOKですが、
BからAへのメッセージ送信はどう実装するのがベターなんでしょうか?

1.AからBのメソッドを呼び出し、戻り値をメッセージとして扱う、(BはAに処理させたい内容を戻り値で返す)
2.BにAの参照を渡しておいて、BからAのメソッドを呼び出す、
3.各オブジェクトにメッセージプロシージャを用意して、そこにメッセージを投げる、(ウィンドウメッセージのように)
あたりは試してみているんですが、どうにもソースがスパゲッティになりがちで悩んでいます。
現在は、オブジェクトへのアクセス手段を統一でき、尚且つ不要なメッセージを無視することが可能な「3」を用いて実装しているのですが・・・
何か他にいい手法はないでしょうか?

272 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 01:02:31 ]
>>271
相互依存するぐらいなら同じクラスにしちゃえばいいのに。
それでおかしくなるようなら A, B のどちらか(または両方)が大きすぎるんじゃないの?

273 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 01:25:41 ]
>>271
デリゲートな悩みですか

274 名前:デフォルトの名無しさん [2007/03/04(日) 01:35:33 ]
実装というか、コーディングマナーの質問です。
配列の並び順を変更するときに、テンポラリ変数としてヒープ領域を使うのはありでしょうか。

275 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 01:37:36 ]
必要ないのにヒープ領域は使わないかな
うっかりミスでリークしたりしたらあれだし



276 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 01:40:47 ]
>>271
ケースバイケースだなぁ。

オブジェクト間のコミュニケーションが複雑化しすぎると感じるなら、
Mediatorパターンなんてのもあるよ。

ウィンドウメッセージは直接的なC++のメンバ関数呼び出しより
はるかに非効率だけれども、
非同期にできたり、相手が死んでいた場合のdangling pointer問題を
回避できたりという利点はある。

277 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 01:42:18 ]
>>274
ヒープ使ってstd::auto_ptr<>に突っ込む分には>>275の言うような
問題はないが、
速度の問題だけで言えばalloca()の方が速い。移植性が劣るし
スタックサイズの制限にひっかかるかもしれないが。

278 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 01:54:53 ]
>>272
元は全部1つのクラスで処理をしていたんですが、
行数が多すぎて分かり辛くなってきたため、分割しようとしたところ、相互依存の問題が出てきた感じです。

>>273,276
色々ありがとうございます。
デリゲート、Mediatorパターン、ちょっと調べてみます。

ゲームプログラムで、非同期処理なので、その辺ももう少し考えてみます。

279 名前:デフォルトの名無しさん [2007/03/04(日) 07:12:04 ]
今後WIN32は消える?

280 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 07:26:12 ]
>>279
100年後とかには生き残ってないだろな。

281 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 10:23:01 ]
>>277
allocaをMSのライブラリは拒否している(昔は使っていたが)。
デフォルトで配列を使ってサイズオーバーしたら
ヒープを使うという戦略になっている
当然allocaより速い

282 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 11:16:36 ]
どうして適当なこと言う奴が後を絶たないのか

283 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 11:31:09 ]
いい加減な事を発言した奴には罰金を科せばいい。

284 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 15:13:11 ]
国会でやると大もうけだな

285 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 18:32:04 ]
レスが付かないのでこちらにきました

Visual Studio2005 C++で
SystemParametersInfo(SPI_SETDESKWALLPAPER, NULL,
"c:\\a.bmp" ,0 );
しても壁紙が変更しません
解る方、教えてください





286 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 20:14:00 ]
人が居なくても、ちゃんと元スレには「あちらで訊いてみます」って書いたか?

287 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 00:14:35 ]
>>285
最後の引数に
SPIF_UPDATEINIFILE|SPIF_SENDWININICHANGE
しとけ

288 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 04:34:28 ]
環境は、C++builderです。

void __fastcall TForm1::Button1Click(TObject *Sender){
//処理
}

他の関数で、ボタンを押した動作をしたいときは、
どのようにすればよいでしょうか。

289 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 10:29:58 ]
TButton::Click()

290 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 14:06:31 ]
>>289
ありがとうございます。

291 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 21:30:09 ]
>>287
レスどうもです
SystemParametersInfo(SPI_SETDESKWALLPAPER, NULL,
"c:\\a.bmp" ,SPIF_UPDATEINIFILE|SPIF_SENDWININICHANGE );
ってしたんですが、だめでした
他にあればお願いします



292 名前:デフォルトの名無しさん [2007/03/07(水) 02:58:25 ]
C++
WinAPIをまとめてあるフレームワークライブラリを解析していたんですが

///// hoge.h ////
class hoge{
hoge();
}
extern hoge* phoge;

///// hoge.cpp ////
hoge* phoge;
hoge::hoge(){
phoge = this;
}

上のような(簡略化してあります)記述がありました。
コンストラクタ内でthisポインタでインスタンスのアドレスを
取得していると思うのですが、このインスタンスが実際に何処にあるのかが、分かりません。

他のファイルも調べてみましたが上の場所でしか、phogeにアドレスが代入されていませんでした。
環境はVisualC++2005です。

293 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 03:04:16 ]
hogeのインスタンスがどこにも無いならコンストラクタも走らず、
したがって、phogeは常にNULLのはず。
とおもったが、phogeの代入箇所?さがすのはhogeのインスタンス化位置でそ?

294 名前:デフォルトの名無しさん [2007/03/07(水) 03:38:54 ]
hogeのインスタンス化のいちも探してみましたが、見つかりませんでした。
さっき気がついたのですがウィンドウの作成時にWNDCLASSではなくCREATESTRUCTが
つかわれていました。これが何か関係あるのでしょうか?
以下のように、この構造体のhInstanceに先ほどのhogeのインスタンスがわたされていました。
cs.hInstance = *app;

295 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 07:08:45 ]
>>292
ソースがあるならそこにブレークポインタでとめて
ステップ実行で周辺を探すって手もある。
上手く行くか知らん。

hoge派生クラスがあるとか。
んなわけないか。



296 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 07:30:28 ]
生成された時の自分自信のポインタをいれてるだけじゃん?

297 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 07:36:58 ]
生成されているのは事実だが
何処で生成しているか判らないから聞いている質問だと思うが?

ブレークポイントを置いてこのときはまだ生成されていないとかから
すこしずつ絞り込んで行くとか。

298 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 07:41:43 ]
extern 宣言してあるんだからコンパイル開始時に生成されると思うんだけど

299 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 07:43:12 ]
あ、コンパイル開始というかプログラム開始時に

300 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 08:58:45 ]
「class hoge を継承したクラスのインスタンスを1個は作れ。 作るタイミングはおまえさん次第」
で、どこかで作られたであろう インスタンス をポインタで保持して、
いつでも呼び出せるようにしている と。

# MFC の CWinApp じゃね?

301 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 09:00:01 ]
グローバルで作ったのなら スタートアップルーチン内 でインスタンス化してる

302 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 09:30:18 ]
DLLを作成したいのですが、
フリーソフトによる開発環境では不可能なのでしょうか?
Visual C++では出来なかった物で…。

303 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 09:45:38 ]
できるよ
VCのスレ…いや、画像付きの解説ページがあったはずだから、ぐぐった方が良いな

304 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 09:50:37 ]
>>303
ExpressバージョンではMFS、ATLが含まれていないので作成出来ないと思っていました。
有難うございます、もう少しぐぐってみます。

305 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 10:43:30 ]
MFCもATLもなくたってDLLは作れる。
プロジェクト作るときにどこかでDLLを選ぶだけ。



306 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 11:29:49 ]
>>291
つ GetLastError()

307 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 16:27:32 ]
質問です。
クラスの「constメンバ関数」は、メンバー変数の書き換えを禁止しますよね。
これによって「その関数は何度呼び出しても問題ないはずだな」
と思って分担作業をしていました。

ところがconstメンバ関数の中から、グローバル空間の変数を書き換えている奴がいたのです。
いままで知らなかったのですが、constメンバ関数はグローバル空間の変数などを書き換えてもコンパイルエラーにならないのですね。

この行為を禁じるための、C++文法的な書き方はありませんでしょうか。
「グローバル変数使うの禁止!」といっても使う奴が稀にでてきてコマっています。

308 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 16:31:38 ]
ありません。

309 名前:デフォルトの名無しさん [2007/03/07(水) 16:43:50 ]
質問です。

ヘッダーファイルで
private:
     int (*ptr)[10];
     int x[10][10];
と宣言しています。ちゃんと機能しています。
それでデコンストラクターでメモリの解放をしたいんですけど
     delete [][] x;
ではコンパイルが通りません。
     delete [] x;
では
     Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
と出てRun-Time Errorになってしまいました。
どうやって解放するんでしょうか?教えてください。

環境はVC++2005 Express Editionです。

310 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 16:49:12 ]
>>309
newしてないんだからdeleteする必要はない。

311 名前:309 mailto:sage [2007/03/07(水) 16:53:34 ]
>>310
あア、ナルほど!
newとdeleteはセットなんですね。
ご親切にどうもありがとうございました!

312 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 17:02:02 ]
あと、デコンストラクタじゃなくて、デストラクタな。
俺も昔勘違いしてた。

313 名前:デフォルトの名無しさん [2007/03/07(水) 17:40:36 ]
if(aaa>=1 && aaa<=10)

のように

if(aaa>='1' && aaa<='10')

これも文字だけでできますか?わざわざ数字に変換しなくてもいいですか?

314 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 17:43:27 ]
わざわざ数字に変換しないとだめです

315 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 17:43:51 ]
'10'



316 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 17:45:25 ]
'10'は規格上は通るけど、恐らくあなたの期待した値にはならないでしょう。

317 名前:デフォルトの名無しさん [2007/03/07(水) 17:47:25 ]
'9'までしか無理ということですか?

318 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 17:49:53 ]
文字定数でぐぐれ

319 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 17:54:32 ]
そもそもaaaの型は何だよ。何が入っているんだ

320 名前:デフォルトの名無しさん [2007/03/07(水) 18:00:41 ]
リテラルにあった型です

321 名前:デフォルトの名無しさん [2007/03/07(水) 18:30:53 ]
年月日時分秒を取得するlocaltimeという関数は見つかったのですが
その取得した時間に10時間プラスしたときに
24時間を越えると日付によって年月日は変動すると思います

時間をたしたいのですが
こういう処理のためになにか用意されていないでしょうか?
環境はVC++2002です

322 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 18:33:17 ]
閏秒は無視して、localtimeに渡す前のtime_tに対して10*3600足せばよくね?

323 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 18:34:19 ]
time_t
struct tm

324 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 18:34:25 ]
>>321
time_t型にした上で、10時間(10 * 60 * 60[sec])を足し、localtime()でばらすかstrftime()で文字列にすれば宜しい。
既にlocaltime()でばらしてあるなら、tm_hourに10を足してからmktime()でtime_tにしてもいい。

325 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 18:39:11 ]
初心者本でこの辺りをまともに解説しているのってあるのかな。
ちなみに、localtime(), gmtime(), asctime(), ctime()はスレッドセーフではないので
マルチスレッドプログラミングのときはご用心。



326 名前:321 [2007/03/07(水) 18:45:56 ]
マルチスレッドプログラミングですがlocaltimeを使うのはまずいでしょうか?

327 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 18:49:18 ]
処理系のマニュアルを参照セヨ

328 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 18:49:49 ]
簡単なプログラムの途中に見栄えを良くするために
横線を引きたいのですが、何かいい方法はありますでしょうか?

329 名前:321 [2007/03/07(水) 18:50:51 ]
1スレッドでしか試してませんが
time_tに対して10*3600してできました
ありがとうございます

330 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 19:00:18 ]
localtime()などは内部の静的な領域を使い回しするから、
それを呼び出すスレッドが複数ある場合は衝突が発生する可能性がある。
まぁ、呼び出すスレッドが一つだけなら問題ないけどね。

簡単に図式化するとこうなる。
・単一スレッドからの呼び出し
スレッドA ──localtime()呼び出し──内部領域変更──localtime()から復帰──内部領域から結果を回収──

・複数スレッドからの呼び出し
スレッドA ──localtime()呼び出し──内部領域変更──localtime()から復帰──内部領域から結果を回収──
スレッドB ────localtime()呼び出し──内部領域変更──localtime()から復帰──内部領域から結果を回収──
                            ↑                      ↑
                            ここで壊れる。 もし壊れなくても、ここでスレッドBからの呼び出しの結果を読む羽目になる。

331 名前:デフォルトの名無しさん [2007/03/07(水) 19:08:53 ]
localtime()を使うスレッドクラスをひとつ用意すればいいということですね
すごく参考になりました

332 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 19:43:27 ]
>>320
ふざけたこと抜かすんじゃねー

333 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 19:44:01 ]
VCのCRTはTLS使ってるから問題ないけどね。

334 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 19:48:49 ]
>>317
数値と文字を一緒にするな。
他の言語だと自動で文字を数値に変換したりするけど
C/C++などは'9'をそのままASCII文字コードだよ。

e-words.jp/p/r-ascii.html

つまり
'9'を数値で言うと57
'$'を数値で言うと36
だ。

'10'はコンパイラによって違うと思う。

335 名前:デフォルトの名無しさん [2007/03/07(水) 21:39:31 ]
メイン関数内でnewしている継承される可能性のあるクラスを
継承された場合、継承後のインスタンスでnewしたいのですが、エレガントな方法が
思いつきません、ご教授お願いします。



336 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 21:49:53 ]
>>335
複数のクラスがそのクラスを継承してる場合はどうするべき?


337 名前:デフォルトの名無しさん mailto:sage [2007/03/07(水) 21:52:44 ]
>>335
もうすでにnewしちゃったんじゃしようがないんじゃない。







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<200KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef