- 1 名前:デフォルトの名無しさん [2007/04/01(日) 23:01:13 ]
- エスケープシーケンスやWin32APIなどの環境依存な物でもOK。
ただしその場合、質問者は必ず、環境を書きましょう。 ※sageは禁止です。 【前スレ】 【初心者歓迎】C/C++室 Ver.35【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1171888583/l50 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
- 562 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 13:44:51 ]
- レガシーAPIに渡せないだろ
- 563 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 13:49:12 ]
- こっちで変数定義したものを向こうへ渡すのなら、
アップキャスト(ポインタ・参照渡し)・スライシング(値渡し)が起こるだけで、 言語規格上問題ないだろ。 向こうでオブジェクトが作成され、自分はそれへのポインタを受け取るという場合に 派生クラスへのポインタで受けたら、言語規格上未定義にはなるだろうけどさ。
- 564 名前:552 mailto:sage [2007/04/22(日) 15:30:50 ]
- >>560
そうなのか、memが初めなのか 脳内では、セット麺、麺セット、麺コピーって変換してた
- 565 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 16:13:33 ]
- >>562
VC++ の CRect は RECT を継承したクラスなんだぜ。 でも、レガシーAPIに渡せるだろ? 仮想関数がないからな。
- 566 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 16:25:18 ]
- >>565
仮装関数は関係ないだろ
- 567 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 16:25:32 ]
- >>565
ちゃうちゃう。 CRectはRECTを継承してない。内部の最初に保持してるだけ。 is-aじゃなくてhas-aの関係 同様の方法でWinAPI32に引き渡せるMFCクラスあるでよ。
- 568 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 16:27:37 ]
- >>567
CRectはRECTを継承しているよ
- 569 名前:567 mailto:sage [2007/04/22(日) 16:29:52 ]
- >>565
ああ、ゴメン俺のまちがいだった。RECTの継承でよかったわ。
- 570 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 17:34:42 ]
- レガシーAPIに渡せるってわざわざ自分で&付けてるのかよwwww
変換演算子あるんだから使えよカスwwwwww
- 571 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 18:06:24 ]
- ( ´д)ヒソ(´д`)ヒソ(д` )
- 572 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 18:06:58 ]
- >>566
ああ、そうだ。関係なかった。すまん。
- 573 名前:デフォルトの名無しさん [2007/04/22(日) 18:24:12 ]
- 構造体をmallocしたときは初期化はどうしたらいい?
1.気にせずmemset 2.最近のmallocはゼロクリア保障なのでそれを信じる 3.地味に全部真面目に設定
- 574 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 18:32:22 ]
- >>573
Cなんだよな。 1.自作の構造体で間違いないのならおk 2.保証されてるかどうかちゃんとCユーザーズマニュアルを見れ 3.一番安全
- 575 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 18:32:32 ]
- 一方ロシアはcallocを使った
- 576 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 18:32:57 ]
- > 最近のmallocはゼロクリア保障
大嘘を付くな
- 577 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 18:41:35 ]
- >>576
え、いや、ウソじゃないです。ごめんなさい。うそじゃないです。
- 578 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 18:55:40 ]
- >>573
>最近のmallocはゼロクリア保障なのでそれを信じる ってホントなの?どういう環境での話? main() { for(;;) { struct { int i; } *s = malloc(sizeof *s); assert(s->i == 0); } } すぐに死ぬけど
- 579 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 19:05:37 ]
- 0 クリア保証してるのは calloc だろ。
- 580 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 20:38:22 ]
- VC++2005で見た限りはvirtual関数があるとサイズが増えてるね。
#include <stdio.h> struct TEST1 { int x; int y; }; struct TEST2 { int x; int y; void setXY(int x, int y) { this->x = x; this->y = y; }}; struct TEST3 { int x; int y; virtual void setXY(int x, int y) { this->x = x; this->y = y; }}; int main() { printf("%d %d %d\n", sizeof(TEST1), sizeof(TEST2), sizeof(TEST3)); return 0; } 結果 8 8 12
- 581 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 21:05:10 ]
- >580
だから?
|

|