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


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

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



1 名前:デフォルトの名無しさん [2008/02/20(水) 12:33:41 ]
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。
【前スレ】
【初心者歓迎】C/C++室 Ver.48【環境依存OK】
pc11.2ch.net/test/read.cgi/tech/1202141921/
【アップローダー】(質問が長い時はココ使うと便利)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

508 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 00:52:46 ]
>>507
それはhのローカルで定義された変数chをmainから操ってるわけではないな
単にnewした領域へのポインタchをmainのxにコピーして渡してるだけだ

509 名前:デフォルトの名無しさん [2008/02/24(日) 00:54:23 ]
一度目のキー入力で、200M分メモリを解放しますよ タスクマネージャみてください

510 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 00:54:39 ]
伸びがいいから何かと思ったら未だ相手にしてたのか。

511 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 00:55:37 ]
>>507
newで確保したメモリへのポインタをmainに連れて行っているだけ。
newやmallocで確保したメモリはソース上のスコープに縛られずに使える。

一方、>>484では、x->start=&ch;というように、
ローカル変数へのポインタをmainへ持って行っている。
しかし、mainに戻ったときには既に変数chそのものが居なくなっているのでうまくいかない。

512 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 00:56:05 ]
見事な無自覚の自己中心主義だな、早く治せよ

>>507
なにしてるかわかってるならいいけど、ポインタ一回お浚いしたら?

513 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 00:56:26 ]
>>507
あんたはnewで確保した領域と、それを指すポインタ変数を、同一のものであると勘違いしてないか?
>>507のコードでも、ポインタ変数chはhを抜ける時に消滅するのは分かるか?

514 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 01:00:53 ]
まずchar *x の xは、int xや float xと同じで、ただのローカル変数であることを覚えとけ

515 名前:デフォルトの名無しさん [2008/02/24(日) 01:04:18 ]
しかしこれは動きません

#include <stdio.h>
#include <string.h>
typedef struct { char **start ; char **end; } bin;

void h(bin *x){
char *ch = new char[11];
strcpy(ch, "ABCDEFGHIJ");
*(x->start)=ch; }

main() {
bin x;
h(&x);
printf("%s",*(x.start));
}

516 名前:デフォルトの名無しさん [2008/02/24(日) 01:04:59 ]
>



517 名前:デフォルトの名無しさん [2008/02/24(日) 01:05:04 ]
free(p)ってやるとpがNULLになるとか思っちゃう人なのかな。

518 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 01:05:45 ]
お前らバカの相手すんなって。つけあがるから。

519 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 01:06:51 ]
>>515
x->startをまったく初期化しないまま、*(x->start)なんかに代入しているのが間違い。
>>513に答えろ

520 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 01:08:18 ]
俺結構ポインタの理解があやふやで、だからなるべくポインタのややこしい部分には触れないプログラム今までしてきたんだけど、
このスレ読んだらなんとなく理解できてきた気がする。
C言語でnewとdeleteを使い続けてる人ありがとう!
あと、もちろん解説してくれてるみんなもありがとう!
明日からもstringばりばり使っていこうと思います。

521 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 01:09:24 ]
>>515
そうだね、それは動かないね
だから?
何を聞きたいのか明確に

522 名前:デフォルトの名無しさん [2008/02/24(日) 01:09:53 ]
ポインタ変数が消滅するのはわかります
関数での、初期化と書き換えをする方法がわかりたいです

523 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 01:10:25 ]
>>515
#include <stdio.h>
#include <string.h>
typedef struct { char **start ; char **end; } bin;

void h(bin *x) {
char *ch = new char[11];
strcpy(ch, "ABCDEFGHIJ");
*(x->start)=ch; }

int main() {
bin x;
char *p;
x.start = &p;
h(&x);
printf("%s", p);
delete[] p;
}


524 名前:デフォルトの名無しさん [2008/02/24(日) 01:10:30 ]
new/deleteを使うということは当然C++だよな?
じゃあ、なんでメモリ操作を隠蔽するクラスを作ろうとしないの?
IQ低いから?

525 名前:デフォルトの名無しさん [2008/02/24(日) 01:10:53 ]
>>522
みんなが何回も例を出しているのに・・・(T_T)

526 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 01:12:15 ]
>>524
上のほうで最終的にCで書くと言っていたはず。
俺にはなんで今はnew[]使ってC++にするのか理解できないけど。



527 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 01:12:50 ]
>>522
おまいがポインタについて知っている知識をすべて述べよ

528 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 01:12:53 ]
>>522
何度か出てる正しく動く例が気に入らない理由はなぜかね

529 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 01:18:03 ]
仮に、彼へC言語ポインタ完全制覇を与えたとしても、
それでわかってくれるかどうか不安になる。

530 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 01:19:41 ]
>>522
皆が何言ってるかほとんど分からないC++素人だけど
一日ぐらい気分変えて犬の散歩にでも行ったら?
まあ、犬のウンコの処理しながら考えたりさ
その後で、また一から作ってみる
以外とできるかもよ

531 名前:デフォルトの名無しさん [2008/02/24(日) 01:21:40 ]
>>523
それだとうごきました サンクス

x.start = &p;
h(&x);
printf("%s", *x.start);

初めにメモリ上にchar*型が確保されないと受け取れないって事か

532 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 01:23:55 ]
>>530
犬のウンコの処理を考えたり に見えて
delete unko;とか脳内で実行しそうになった

533 名前:デフォルトの名無しさん [2008/02/24(日) 01:28:09 ]
>>523
pを確保しなくても、これでもいいはずですよね

int main() {
bin x;
x.start = new char *;
h(&x);
printf("%s", *x.start);
}

534 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 01:28:52 ]
newしたらdeleteしとけよ

535 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 01:35:57 ]
>>533
newしたものはdeleteしないといけないのが面倒だから、
使わずに済むなら避けるべき。

536 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 01:48:50 ]
だから、newを捨てるところからはじめろって。



537 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 01:53:19 ]
C及びC++を使いゲームを作成された方へ質問です。

再帰関数って便利ですか?
もしよろしければ、メリットとデメリットを教えていただけないでしょうか?

自分の考えでは、 goto と同じ用に無理に使う必要はない機能だと思ってます。

538 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 01:54:37 ]
再帰関数については色々思うところがあるのだが、ゲームを作っているわけではないからなぁ。

539 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 01:58:18 ]
無理に使う必要は無いなぁ
メリットデメリットという問題でもない気がする

540 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 01:58:23 ]
>>537
ポリゴン(ボーン)の操作で便利
でも、無理して使わなくてもおk

541 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 02:03:16 ]
ボーン操作ってことは、データの読み込み時に便利ってことでしょうか?

542 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 02:09:18 ]
【環境】 MS WinXP/gcc 3.4.4 on cygwin
【ソース】 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6079.txt
【用途】 IRCクライアント(bot)
【起動方法】 $ ./a irc.tokyo.wide.ad.jp 6664
【動作の現状】
 1.コマンドラインからサーバ名とポートを受け取り、ソケット作成、コネクション確立
 2.サーバからのコネクションメッセージ受け取り
 3.USER/NICKコマンドの送信
 4.ウェルカムメッセージ、MOTDの受け取り
 5.半角英数のチャンネル名へのJOIN ←ここで停止する
【質問】
 ・Telnetで同じように接続すると問題なく接続→終了することができる(ISO-2022-JPだから文字化けするが正常)
 ・送受信周りがかなりいい加減なのでJOIN出来ないのはそこに問題があるのではないか?

イレギュラーなことをやってますが、IRC板orスレというよりCネットワークプログラミング自体の問題かと考え
こちらに質問させていただきました。よろしくお願いいたします。

543 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 02:13:01 ]
>>541
typedef struct _D3DXFRAME {
LPSTR Name;
D3DXMATRIX TransformationMatrix;
LPD3DXMESHCONTAINER pMeshContainer;
struct _D3DXFRAME *pFrameSibling;
struct _D3DXFRAME *pFrameFirstChild;
} D3DXFRAME, *LPD3DXFRAME;

座標系の上に座標系があって、
さらにその座標系の上に座標系が…
と繰り返すので、スタックを自前で管理するより
再帰処理にしたほうが楽というだけ
(体-上腕-腕-手-指 のように繋がっていくので)

544 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 02:17:35 ]
>>542
カンなので外してたら無視してくれ
>for(i=0;i<=strlen(p);i++){
\0も送信してるが、いいのか?
i<strlen(p) なんじゃない?

545 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 02:37:36 ]
>>543
for分で体のパーツ数回してデータを読み取ってるんですが、
今は無理してそれを崩してまで使う機能ではないってことですね。

よく機能を理解して使えば楽になる物、ということですね。
答えてくれた方ありがとうございました。

546 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 03:26:15 ]
>>542
メッセージの終わりを\n → \r\n に変えてみたらいけるかも



547 名前:デフォルトの名無しさん [2008/02/24(日) 03:33:50 ]
>>530
俺はオナニーして発射した後、ティッシュで拭いてる時にコードが閃くよ。

548 名前:546 mailto:sage [2008/02/24(日) 03:56:01 ]
あと、>>544と同じく\0の送信は不味いんでは?
\nでメッセージの終わりを判断してるとすると、サーバは次のメッセージの受信で
先頭に\0が入ってしまうんではないかと思う
(2回目のメッセージが、"\0JOIN #ircclidev\n"になるんじゃないかな)

549 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 04:06:10 ]
>>544,>>548
i<strlen(p)で解決しました。初歩的ミスもいいところだ・・・。

もう一つ質問があるのですが、(どちらかというとこちらが本題ですが)
ISO-2022-JP(いわゆるJISコード)とShiftJISを相互変換するライブラリorサンプルを探しています。
検索してもなかなかしっくり来るものがなく、nkf経由だと上手くISO-2022-JPの制御コード
(KI/KO=0x1B 0x24 0x42/0x1B 0x28 0x42)を取ることが出来ません。

RFCには、特にマルチバイト環境の規定は定められていませんが、日本語IRCサーバは
ISO-2022-JPを使っているところが主流のようです。

550 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 04:12:53 ]
>>542の修正版ソースです。一応日本語以外はちゃんと動く・・・はず
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6082.txt

551 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 05:11:02 ]
>>549
iconvじゃだめかい?

552 名前:デフォルトの名無しさん [2008/02/24(日) 05:52:14 ]
すんません。
VC++6.0からVisualStudio2008に移ったんですが、外観が変わりすぎててチンプンカンプン・・・
どこかVisualStudio2008 Exp の解説やってるページとかありませんか?

dllすら読み込めぬ・・・。orz


553 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 06:11:51 ]
Visual Studio2008スレにGO

554 名前:デフォルトの名無しさん [2008/02/24(日) 10:24:08 ]
自分でクラスを定義するときに、ポインタに対する演算は、定義しなくてもよいのでしょうか?
つまり、ポインタでも、int*とか、char*とかの型がありますが、例えば
myclass*==int*
とかやるとコンパイルエラーになります。でも、myclass1*==myclass2*は、==演算子も
定義してないのに、コンパイルできるし、ちゃんと動きます。
これは、どういう理由でできるんですか?というか、ポインタの比較をする演算子って
どこで定義してるんでしょうか?

変な質問ですいません。


555 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 10:27:06 ]
継承関係があるんじゃない?

556 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 10:54:10 ]
>554
規格上で「できる」と決められている処理ははコンパイラが勝手に処理してくれる、というだけ。
myclass1*==myclass2* は >555 の言うとおり myclass1 と myclass2 に継承関係があるんだろう。
この場合、暗黙の型変換が発生して同じ型になり比較できる、と決まっている。

で、規格で決められている以上のポインタに対する演算を、自前で定義する必要があるケースはまずない。



557 名前:デフォルトの名無しさん [2008/02/24(日) 10:55:39 ]
>>554
違う型のポインタの比較はダメ
int* a;
double* b;
a == b
をやってみれば意味がわかるんじゃないかな?


558 名前:デフォルトの名無しさん [2008/02/24(日) 12:50:04 ]
C++で配列を関数の引数にできますか?

559 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:52:24 ]
配列の参照か、配列のポインタか、配列要素のポインタならできます
配列自体は無理

560 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:52:27 ]
ポインタじゃダメなのか?

561 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:53:21 ]
>>558
できる

template <size_t n>
void func((&a)[n]) のように

562 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:53:39 ]
型がねえ

563 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:58:42 ]
すまん忘れた

564 名前:デフォルトの名無しさん [2008/02/24(日) 13:14:21 ]
>>559-563
ありがとうございます。
たしかにできませんでした。でも、
template <class T, int N>
int func(T a[N])
{
...
}
こういう様に書いても(func()の引数に&を付けても付けなくても)、aは参照扱いになるようです。
aに対して変更を加えると、func()の呼び出し側の元配列にも変更が反映されました。


565 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 13:20:12 ]
そりゃaはポインタなんだから。

566 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 13:32:04 ]
>>564
aは参照でなくてdecayされるからポインタだろ



567 名前:デフォルトの名無しさん [2008/02/24(日) 13:36:59 ]
>>565-566
そうか。ポインタですよね。
ポインタをコピーして、その先まで複製してくれるのはありえないですよね。
ありがとうございました。


568 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 13:50:24 ]
構造体かクラスでラップしとけばいい。
boost::array を使うとか。

569 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 16:28:53 ]
C++で乱数を扱う為のクラスとか関数はありますか?
rand/srand使うしかないですか?

rand/srand使うとしたら、シードによく現在時刻使いますが
現在時刻を取得する方法はtimeしかないですか?

++らしい方法があれば教えてください。

570 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 16:30:06 ]
MT法のインラインアセンブラ版がどっかにころがってたきがする

571 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 16:31:57 ]
boost使うか
www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/mt.html
ここから持っていけばいいんじゃね

572 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 16:32:08 ]
>>569
Boost.Random

573 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:06:58 ]
javascriptではalert("文字列"+123)
という風に文字列と数字を一緒にメッセージ表示出来ましたが、
C++で文字列と数字を一緒にメッセージ表示させるにはどうしたらいいでしょうか?
MessageBox(NULL, "文字列"+123, "test", NULL)
というのは出来ませんでした。

574 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:09:11 ]
>>573
JavaScript同様、文字列を連結してから表示すればいい。

575 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:19:27 ]
>>574
char msg[20] = "文字列";
char tmp[10];
itoa(123, tmp, 10);
strcat(msg, tmp);
MessageBox(NULL, msg, "test", NULL);
こんな感じですか?

メッセージ毎にこのコードを書くのも面倒臭いのと、
いつも "文字列"+数字 の組み合わせと言うわけでもなく
数字+"文字列"+数字+"文字列" という事もあるため
自作関数でmsgbox(char*, int){}という決め撃ちではやく、
文字列や数字を混同で表示できる方法はないかと考えています。

576 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:20:07 ]
お願いします。C言語初心者なんですが、
ソース内に日本語を入れるとエラーになるんですが、
どこをどうすればいいのでしょうか?

超初心者です。よろしくお願いします。



577 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:21:41 ]
× ああああ
○ //ああああ

578 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:22:14 ]
ソースから日本語を消す

579 名前:576 mailto:sage [2008/02/24(日) 17:27:51 ]
説明へたですいません。

/* hello02.c */

#include <stdio.h>

int main()
{
printf("今日はよい天気です。\n");
printf("明日もよい天気でしょう。 \n");

return 0;
}

これなんですけど…

580 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:30:51 ]
>>576
どんなエラー?

581 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:34:42 ]
>>570-572
ありがとうございます、Boost 試してみます。
手元の mingw にはなさそうなので、まずはgooって
Boost 環境揃えてみますね。

>>576
・ソースの文字コードを変えてみる
・処理系を変えてみる

582 名前:576 mailto:sage [2008/02/24(日) 17:36:23 ]
本当にすいません。

普通に表示されました。
なんか間違ったやりかたしてたみたいです…


申し訳ないです。

583 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:41:12 ]
>575
そのためのsprintf、とだけいっておくけど。

584 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:48:41 ]
>>583
sprintfだとメッセージウィンドウは生成されないですよね?

外見としてはMessageBoxの中身に数字や文字列を表示している様な方法がいいんです。

585 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:54:21 ]
sprintfのsは何の意味か知っているか、とだけ言っておくけど。

586 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:55:05 ]
>>584
ならsprintfしてMessageboxにいれる処理の関数つくればよくね?



587 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:56:41 ]
要はフォーマット→MessageBox()と
二段構えになるのが嫌、というだけの話とエスパー

vsprintf()使って自作ラッパー関数でも書くんだな

588 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 17:58:37 ]
>>584
boost::lexical_cast
を使うと幸せになれると思う

589 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:04:51 ]
>>585-588
失礼しました。printfと勘違いしてました。
sprintfだと文字列に格納できるんですね。
boostは自分にはまだ早そうなので(正規表現使えるのは魅力的ですが)、sprintfでやってみます。
ありがとうございました。

590 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:05:19 ]
>>588
効率が悪いのが難点

591 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:07:23 ]
>>588
俺も最初それ思いついたけど、連結する数値がたくさんあると見苦しくなるから
std::stringstreamに流し込んで取り出す方がいいんじゃないかなあ。

592 名前:デフォルトの名無しさん [2008/02/24(日) 18:45:34 ]
DLLの読み込みで、コンパイラによって失敗します
序数で指定しても動きません どのような理由でしょうか?
VC++だと動かないですが、BCCとDMCで動きます

593 名前:デフォルトの名無しさん [2008/02/24(日) 18:47:43 ]
HINSTANCE hd=LoadLibrary("*****.dll");
FN = (fnc) GetProcAddress(hd, (LPCSTR)4); //序数での指定

このような記述はWindowsXPなら万能ではないんでしょうか?

594 名前:デフォルトの名無しさん [2008/02/24(日) 18:50:46 ]
訂正
読み込みはしますが、実行時にエラーになります 序数がずれるのかも・・と思い全ての番号で試したのですがだめです

595 名前:デフォルトの名無しさん [2008/02/24(日) 18:52:47 ]
継承について教えてください
CFooから派生したCFooEx0、CFooEx1、CFooEx2、CFooEx3があるとします。
そして、それぞれCJissou0、CJissou1、CJissou2、CJissou3に派生してるとします。
その上、CJissou0、CJissou1はIHoge0を、CJissou2、CJissou3はIHoge1を実装しているとします。
図にするとこんな感じ。
CFoo─CFooEx0┬CJissou0
IHoge0┘
CFoo─CFooEx1┬CJissou1
IHoge0┘
CFoo─CFooEx2┬CJissou2
IHoge1┘
CFoo─CFooEx3┬CJissou3
IHoge1┘

CFooとCFooEx〜は弄らないとして、IHoge〜のインターフェイス関数をCJissou〜に実装します。
で、マネージャー的な物例えば、std::vector<CFoo *> vecにそれぞれの実態を入れて、
CJissou〜の関数を呼びたいのですが呼ぶ際には、
dyanamic_cast<CJissou0 *>(vec[0])->Test();見たいな事をしないといけないと思います。
でもそういう呼び出しだとIHoge〜も意味が無くなってしまうし、数が多くなると厳しくなります。(IHoge〜は数個)
だから、dyanamic_cast<IHoge0 *>(vec[0])->Test();//エラー
見たいな呼び方をしたいのですがどうすればいいのでしょうか?

596 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:59:37 ]
>>595
そもそもそのような継承にしてる理由は?



597 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:59:59 ]
>>595
CFoo のメンバ関数ならキャストは要らないはず。
IHoge〜 に意味が無くなると言うが、こっちからしたら CFoo や vec の使い方も
ひっくるめて最初からその継承関係の意味がわからん。

598 名前:595 mailto:sage [2008/02/24(日) 19:06:57 ]
えっと、まあ、CFooがMFCのCViewで、CFooEx〜がCTreeViewとかCListViewなのでどうした物かと質問しました・・・。

599 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 19:10:28 ]
なんでvector<IFoo>とかにしないわけ?
あるいは、virtual Test()をもつ何かインターフェースに。

600 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 19:18:44 ]
CFooEx の状態で持てないのなら
ダウンキャストすることになるだろうな。

601 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 20:05:03 ]
>>590
もう自前でパースしてるよ

602 名前:592 [2008/02/24(日) 20:05:24 ]
最適化オプション関係でした

603 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 20:10:05 ]
>>601
車輪の再発明

604 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 20:25:22 ]
boostが?

605 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 20:29:54 ]
ごめん勘違い

606 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 20:58:50 ]
文字コード?jisコード?って覚えるべきもの?



607 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 21:06:12 ]
必要になったときに表を見れば十分

608 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 21:06:13 ]
>>606
全てのJIS漢字のJISコードなんて、そうそう覚えられるもんじゃないと思うが。






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

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

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