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


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

スレを勃てるまでもないC/C++の質問はここで 12



1 名前:デフォルトの名無しさん [2009/07/19(日) 22:32:32 ]
スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。

過去ログ
スレを勃てるまでもないC/C++の質問はここで
pc11.2ch.net/test/read.cgi/tech/1167476845/
スレを勃てるまでもないC/C++の質問はここで 2
pc11.2ch.net/test/read.cgi/tech/1178503366/
スレを勃てるまでもないC/C++の質問はここで 3
pc11.2ch.net/test/read.cgi/tech/1187521676/
スレを勃てるまでもないC/C++の質問はここで 4
pc11.2ch.net/test/read.cgi/tech/1221633708/
スレを勃てるまでもないC/C++の質問はここで 5
pc11.2ch.net/test/read.cgi/tech/1230516307/
スレを勃てるまでもないC/C++の質問はここで 6
pc11.2ch.net/test/read.cgi/tech/1231564903/
スレを勃てるまでもないC/C++の質問はここで 7
pc11.2ch.net/test/read.cgi/tech/1232983248/
スレを勃てるまでもないC/C++の質問はここで 8
pc12.2ch.net/test/read.cgi/tech/1235921779/
スレを勃てるまでもないC/C++の質問はここで 9
pc12.2ch.net/test/read.cgi/tech/1240022781/
スレを勃てるまでもないC/C++の質問はここで 10
pc12.2ch.net/test/read.cgi/tech/1242300936/
スレを勃てるまでもないC/C++の質問はここで 11
pc12.2ch.net/test/read.cgi/tech/1245059383/

449 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 22:20:34 ]
vecterとかmapのデフォルトコンストラクタってメモリ確保しないよね?

450 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 22:58:41 ]
実装依存だから確実ではないけど、普通は確保しないよ。

451 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 00:08:57 ]
stlportって何ですか?
ググってみると良いことずくめに書いてあるんですが。


452 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 00:33:47 ]
演算子のオーバーロードを勉強中です。
コンパイルエラー出ます。本のサンプルプログラムなんですが。

a.c:17: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
string.h:21: note: candidate 1: char& String::operator[](size_t)
a.c:17: note: candidate 2: operator[](char*, int) <built-in>

です。原因は何でしょうか?エラーメッセージがよくわかりません。

もし、ソースコードが必要なら乗せます。

453 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 00:34:37 ]
>>438が釣りなのかどうか判断つかん

454 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 08:02:56 ]
>>452
必要に決まってるじゃん。
codepad
ttp://codepad.org/

ここで。

455 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 14:37:26 ]
C++のサンプルコードが載ってるデザインパターンの本で良書あります?

456 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 15:43:32 ]
>>451
VC6のころは必須だった。 今は別になくてもいい。

457 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 17:39:41 ]
ゲーム内に存在するユニット(プレイヤー、モンスター、障害物など)にユニークIDを付けたいんだけど
アドレスをintにして返すだけの基底クラスを継承させれば問題ないかな?




458 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 17:48:24 ]
アドレスをハッシュにするのはよくある手段だな
ポインタ型のサイズが変わったときにちょっとハマるかもしれんから
ハッシュ同士を==,!=で比較する以外の使い方をするときには注意が必要になるだろう
できれば専用の型でラップして使うべきだろうな

459 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 17:56:05 ]
intptr_tなりUINT_PTRなりをtypedefしてxxx_IDとして用いれば大丈夫だろうね。

460 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 18:26:48 ]
>>455
独習C++デザインパターンかなぁ。この手の本は殆どがJavaで書かれてるからC++の本は少ないな。

461 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 19:14:22 ]
「Java謎+落とし穴」という書籍の中でC++はリフレクションが弱い、との記述があったのですがこれは事実でしょうか?
かなり古い本なので最近のC++のリフレクション周りについて知りたいです。
できればJava、C++、C#辺りのリフレクションの違いについて教えて頂けると有り難いです。
よろしくお願いします。

462 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 20:03:39 ]
>>461
弱いどころか無いに等しいよ。
リフレクションが必要ならインタプリタ言語にまかせよう。

463 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 20:06:02 ]
C/C++で、
 aa(), bb(), cc()
とした場合、この式の評価順序は
 aa()が最初で次がbb()で次がcc()
ということは仕様で保証されていますか?


関数の引数の評価順序は保証されていないということだそうで。

464 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 20:15:32 ]
>>463
この場合はコンマ演算子だから、左から右へ評価されることは保障されており、かつ値は最後に評価したものですね。

465 名前:463 mailto:sage [2009/08/15(土) 20:53:28 ]
>>464
ありがとうございます。
ではそれに依存してコーディングしていきたいと思います。

466 名前:461 mailto:sage [2009/08/15(土) 21:07:09 ]
>>462
ありがとうございます。
クラスやメソッドを実行時に決定したい場合などは諦めるしかないのでしょうか?
あるいはそういう需要があること自体、設計がおかしいという判断になるのかな

467 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 21:11:00 ]
>>466
> クラスやメソッドを実行時に決定したい場合などは諦めるしかないのでしょうか?
C++には継承と仮想関数がありますからそれをうまく使ってください。

> あるいはそういう需要があること自体、設計がおかしいという判断になるのかな
if(flag)
{hoge.foo();}
else
{hoge.bar();}
こんなことは良くやりますけど。

あとはC++には関数ポインタもありますねぇ。



468 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 21:21:59 ]
場合分けはさすがに無いだろw
まぁJavaでもClassクラスなんて使うのは最終手段だし設計を見直すのが吉だろうな

469 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 21:36:03 ]
>>466
ポリモーフィズムがあるんだから利用しない手はないだろ。
実行時に型を決定したいなんて結構あるんじゃないか?
それがあってるのかどうかは知らんが。

470 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 22:20:55 ]
C++プログラミングの筋と定石 (新紀元社情報工学シリーズ)

この本を読むのじゃ。
お前様のほしい情報が載っておるぞ。
あたら高度だけど。

471 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 22:33:03 ]
滅茶苦茶古い本だぞそれ

472 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 22:57:12 ]
古いけどナイスガイ

473 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 22:58:16 ]
宣伝は他でやれ

474 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 23:01:16 ]
宣伝だと思うなら無視すればいいじゃない。
宣伝しなくても名著だからみんな知ってるだろうし。
MoreEffective C++でも推薦されてたくらいの本だから
もちろん、君も知ってるよね?

475 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 23:23:04 ]
あぁ原書は有名だけど翻訳が糞過ぎて読む気無くなったなそれ

476 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 23:25:28 ]
どう見ても宣伝だわw

477 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 19:02:57 ]
Baseクラスと、Baseをpublic継承したDerivedクラスがあります。

Derived hoge;
void foo(const Base&);//1
void foo(const Derived&);//2

となっている時、
foo()//1にhogeを渡したいのですが、どうすればよいでしょうか?

foo(static_cast<Base>(hoge));
だと無駄なテンポラリオブジェクトができてしまいますか?





478 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 19:41:38 ]
// 値型のキャストだとコピーになるが、参照型でキャストすればコピーは発生しない
foo(static_cast<Base&>(hoge));

479 名前:477 mailto:sage [2009/08/16(日) 20:00:14 ]
>>478
ありがとうございます。

ということは
Derived hoge;

const Derived& hoge = ...
であった場合は
foo(static_cast< const Base& >(hoge));
であっていますか?

480 名前:デフォルトの名無しさん [2009/08/16(日) 20:01:39 ]
C++でもassertって使うの?

481 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 20:15:06 ]
#include <iostream>
using namespace std;
class Base{};
class Derived : public Base {};

void foo(const Base&){cout << "Base" << endl;}
template<class T>
void foo(const T&){cout << "T" << endl;}

int main()
{
Derived hoge;
foo(hoge);
return 0;
}

これでTが表示されるのは、
基底クラスへキャストするよりもテンプレートの方が優先される
ためだと思いますが、
この動作はC++の仕様でしょうか?

482 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 20:37:48 ]
>>480
使うよ。用途はCと一緒でしょ。

483 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 21:28:27 ]
C++です。

ヘッダファイルに書かれた関数テンプレートを
どんなときにinline宣言すべきか分かりません。
明らかに短い時はinline宣言しますが、
どのあたりの長さからしない方がよくなるのでしょうか?

484 名前:デフォルトの名無しさん [2009/08/16(日) 21:35:07 ]
ほっとけばinline

485 名前:483 mailto:sage [2009/08/16(日) 21:38:31 ]
>>484
ええと、ヘッダファイルに書かれた関数テンプレートでも
明示的にinlineと書かない限り
(コンパイラによる最適化以外では)
inlineにはならないと思っているのですが。


486 名前:デフォルトの名無しさん [2009/08/16(日) 21:50:02 ]
異なるcppファイルに同じヘッダを読み込んで、各々のオブジェクトファイルで実体化されたら
リンク時にカチ合うじゃないか。

487 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 21:51:34 ]
>>485
Efficient C++(Effectiveじゃないよ)の9章と10章に載ってなる。
具体的には130ページに、行数(命令数か)と呼び出し頻度で決めなさいと書いてある。
あと、見た目のコード自体は短くても実際はそうでもないことがあるから注意な。

まあ、コンパイラの判断でインライン展開されるからinlineと書いたところで
必ずインラインになるとは限らんしな。



488 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 21:52:23 ]
すみませんが構造体配列の初期化で全てを同じ値にしたいのですが上手くいきません
どこが間違っているのでしょうか?

struct Piece_t {
int Kind;
int State;
};

struct Piece_t Piece[(MAX_MASS + 2) * (MAX_MASS + 2)]={3,0};


489 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 22:01:08 ]
初期値は必要な数だけ与えてやらんとだめ

struct Piece_t Piece[5] = { {3,0}, {3,0}, {3,0}, {3,0}, {3,0}, };

490 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 22:09:04 ]
では要素数が可変の場合にはそれを上回る数を
あらかじめ用意するしかないのでしょうか?

491 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 22:14:24 ]
forで回すなり、memsetするなりあるだろう。配列なら要素数も分かるだろ?

492 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 22:17:25 ]
ああ…forで回せば良いのか…
疲れてたみたいです
アドバイス有難うございました

493 名前:483 mailto:sage [2009/08/16(日) 22:50:53 ]
>>486
普通の関数ではそうですが、
関数テンプレートの場合はその限りではないと
記憶しています。



>>487
ありがとうございます。
Efficient C++は読んだこと無いので、
今度探ってみます。


494 名前:デフォルトの名無しさん [2009/08/17(月) 00:31:52 ]
いつもデバックなしで実行しているのですが、
リリースモードで実行するにはどうしたらいいですか?

495 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 00:35:43 ]
まず、使っているコンパイラーを(ry

496 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 01:33:32 ]
Intel C++コンパイラです。

497 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 10:20:38 ]
>>496
使っているIDEのマニュアルでも読んでください。



498 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 11:07:11 ]

if(flag_1)
return val_1;
else if(flag_2)
return val_2;
else if(flag_3)
return val_3;
これと
if(flag_1)
return val_1;
if(flag_2)
return val_2;
if(flag_3)
return val_3;
これはどちらが速いのでしょうか?

499 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 12:04:51 ]
>>498
return文を使って関数から抜け出しているので、前者も後者も比較回数は同じになる。
また、return文を使って関数から抜け出しているので、前の条件が偽であるときしか後の条件を判断されないことになる。
よってelseを使う必要はない。
よって後者でおk。

ただ、速さが変わるかどうかは俺にはわかんね。

500 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 12:15:09 ]
繰り返し文でその都度printfで結果を表示させたいのですが
古いほうから消えていきます。結果を全部残すにはどうすればいいですか

501 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 12:16:12 ]
>>500
リダイレクトする。

502 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 12:28:15 ]
>>498
少なくとも私は後者の方が速くタイプできました。

503 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 12:36:21 ]
>>501
なるほど。それでググったら出来ました。ありがとうございます

504 名前:498 mailto:sage [2009/08/17(月) 12:45:18 ]
>>499
ありがとうございます。

速さは・・・elseがない方がむしろ速いとか、
あった方が処理が分かりやすくて最適化しやすいとか
同一のasmに落ち着くから関係ないとか色々と考えられそうです。

ま、あまり気にしないのが正解なのでしょうか。

BoostやGCCの実装とかで同じような物があるかどうか探してみたいです。

505 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 13:32:44 ]
>>504
こっちに似たような話があるから気になるなら参加したら?
【初心者歓迎】C/C++室 Ver.67【環境依存OK】
pc12.2ch.net/test/read.cgi/tech/1247937958/

506 名前:504 mailto:sage [2009/08/17(月) 14:21:07 ]
>>505
みんな同じようなこと考えるんですね。
行ってみるかもしれません。
ありがとうございます。

507 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 14:43:09 ]
えっ?



508 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 15:13:20 ]
タイピングを楽にする為だけの#defineもtypedefにしたほうがいいのかな
テンプレートっぽいことができるのと#undefがある分有利な気がするんだけど


509 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 15:56:43 ]
>>508
typedefに代えていけるならお薦め。

> テンプレートっぽいことができるのと
そりゃtypedefに代えていけないってことじゃん。

> #undefがある分有利な気がするんだけど
どうして?むしろ不利だろ?
typedefなら同名の物とかち合ったらコンパイルエラーになれる。


510 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 21:16:01 ]
非同期ファイル読み書きには
Win32APIのCreateFileしか方法ないの?

511 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 21:20:56 ]
スレッドを使ってみるとか

512 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 22:33:25 ]
>>498
gccでコンパイルすると同じになったからどっちも同じ

513 名前:デフォルトの名無しさん [2009/08/19(水) 09:21:13 ]
C++でCGIをはじめました。POSTで日本語を受け取った場合URIエンコードされますがデコードのやり方が分からず困っています。
例えば あ であれば
%82%A0になりますが
どのようにすれば元の文字に戻せるのか
わかる方いましたらよろしくお願いします。
ソースを頂けたらなおありがたいです。

514 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 09:37:31 ]
スレチな気もするが…
www.kinet.or.jp/hiromin/cgi_introduction/appendix/url_encode.html

515 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 10:20:59 ]
.lib+.hで提供されているライブラリをまとめて適当な名前空間に入れたいんですが
なにかいい方法はないでしょうか


516 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 11:26:18 ]
>>515
.libだと真っ当な方法では無理。
せいぜいがDLLに隔離して新しいインターフェースを丸ごと書き直すぐらいかと。

517 名前:デフォルトの名無しさん [2009/08/19(水) 12:10:07 ]
514さん
大変参考になりました。
私もスレチかと思いましたがそれでも 教えて頂けて本当に感謝しております。ありがとうございました。



518 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 14:18:30 ]
インターフェースに宣言されているメンバ関数をコンストラクタのように連鎖的に呼び出したい場合
スコープ解決して普通に呼び出しを繰り返すすほかになにかやり方はありますか?


519 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 16:37:47 ]
>>518
具体的にどういうコードで問題になってるのかわからん。
インタフェースって抽象クラスのことか?

520 名前:デフォルトの名無しさん [2009/08/19(水) 17:19:45 ]
pthreadについて。

pthread_createで作成したスレッドを、スレッド外から終了させたいのだが。
名前的にはpthread_t指定してpthread_killぽいと思ったんだが、うまくいってないぽ...

どうすればいいの\(^o^)/

521 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 17:25:29 ]
signal(pthread_killの第二引数)は何を指定した?
まさか0じゃないだろうな?
int pthread_cancel(pthread_t)じゃ駄目?

522 名前:デフォルトの名無しさん [2009/08/19(水) 18:31:55 ]
0さーせんwwwwww

cancelで終了した!
さんくす

523 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 20:17:23 ]
ofsream.flush()でファイル出力時に
ディスクの容量オーバーの場合エラーにする事てできます?
例外がスローされずにフリーズしてしまいます…

524 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 20:22:21 ]
>>523
OSなどの環境は?

525 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 21:40:41 ]
>>524
すいません、linux + c++ + gcc です。

プログラムからシェルコマンドでディスク容量の結果とって調べる
とかは可能です?

526 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 22:27:51 ]
>>523
ofstreamの bad()/fail()/good()あたりのメンバ関数で判断できるんじゃないかな。

527 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 22:43:20 ]
APIを探してくるしかなさそうだな。



528 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 23:56:33 ]
>>523
C++のストリームクラスで例外が投げられるようにするには、
予めメンバ関数exceptionsで例外を投げるよう指定する必要があるよ。

529 名前:523 mailto:sage [2009/08/20(木) 14:19:06 ]
レスおそくなりすみません。
一応解決しました、ブロックが全て埋まりますが、
>>526のfail()で判定できました。
ありがとうございました。

530 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 18:46:59 ]
メンバ関数の名前ってインスタンスが主語になるように名付けたほうがいいですか?

531 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 20:10:13 ]
大抵そうじゃない?

532 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 20:18:46 ]
>>530
is_invalid()
とかね。
むしろそうじゃないのってなに?


533 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 20:36:17 ]
getter/setterとしてのgetName()は、
インスタンスを主語にするんなら、returnName()じゃね?

534 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 21:01:57 ]
>>533
あーなるほど。


535 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 21:50:52 ]
itsName()

536 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 23:50:26 ]
>>533
インスタンスに対する命令語だから、Set / Get でいいのでは?
そうなるとこの場合、主語は無しだけど。

protected / private メンバ関数だと自動詞、
public メンバ関数だと他動詞になりやすくない?


537 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 23:58:53 ]
>>536
命令だとしてもインスタンスに対してGetってのは
やっぱおかしくない?
ちなみに英語では命令文の主語は通例省略されるだけでありyouだ。

とりあえず標準C++で考えて見ると
C++文字列(std::string)
ttp://www.cppll.jp/cppreference/cppstring.html
C++ ベクタ(std::vector)
ttp://www.cppll.jp/cppreference/cppvector.html

例が悪い気がしてきた(笑)




538 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 00:17:06 ]
イテレータが分からなかった時の
begin()とかend()とかの怖さといったら。

539 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 02:53:16 ]
C++の設計について質問です。

たとえば、ゲームの当たり判定を計算する関数郡を内包した「当たり判定計算クラス」を作り、
その計算クラスを扱う「当たり判定制御クラス」を作ったとして、
当たり判定制御クラスに計算クラスのオブジェクトアドレスを渡す際に、
生成もすべて任せるべきでしょうか? それとも、生成はまた別のクラスで行い、その後に渡すべきですか?

どうも調べていると、「生成は別にすべき」とよく目にするのですが、
この場合、「計算クラス」を使うのは「制御クラス」以外にありえず、
いちいち別で生成するメリットが見出せません。

オブジェクトを生成するファクトリクラスなる概念が出てくるのですが、
これというのは自機や敵機という具体的なオブジェクト以外にも、
こういった計算クラスのオブジェクトの生成も担うべきなのでしょうか

540 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 03:17:07 ]
>計算クラスのオブジェクトアドレスを渡す際に、生成
何を生成?

541 名前:539 mailto:sage [2009/08/21(金) 05:09:32 ]
説明不足でした、すみません

CAtari* a; ←アドレスなので宣言の時点では生成されていない
a = new CAtari( 引数 ); // コンストラクタを呼び出してオブジェクト生成
↑これを、制御クラスで行うか、生成クラスを作って行うか?

制御クラスで行う場合、
CControlAtari* b;
b = new CControlAtari( a, 他引数 ); // コンストラクタに計算クラスオブジェクトを渡す
↑このようにして、bのコンストラクタでaの生成を行います
 aの解放もbのデストラクタで行います

542 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 08:58:05 ]
特別な理由でもない限りオブジェクトファクトリー使う必要はないよ

ただ、newしてないポインタを渡すぐらいなら
呼び元でnewしたほうがいいのでは

543 名前:デフォルトの名無しさん [2009/08/21(金) 09:03:57 ]
どうしたらここで言ってることが理解できるようになりますか?

544 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 09:21:39 ]
コードを沢山書いて、人のコードも沢山読んで、
んで頑張る。

545 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 09:43:44 ]
当たり判定なんて座標渡して結果を受け取るだけでいいんじゃないのか?

546 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 12:32:25 ]
private:int m_xがあるとして
get_x()よりpublic:const int& xのほうがクライアントコードも短いしいいんじゃないですか?


547 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 12:46:48 ]
それするならpublic: int xでいいじゃない



548 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 12:57:07 ]
>>546
const_castで値が変更できそうなのは見なかったことにしても
メモリの無駄じゃないかな

549 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 13:35:25 ]
実行中に自身のクラス名(C++の)を取得する簡単な方法ってある?






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

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

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