1 名前:デフォルトの名無しさん [2009/07/18(土) 02:54:58 ] C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレに お願いします。 前スレ C++相談室 part70 pc12.2ch.net/test/read.cgi/tech/1244942050/l50
152 名前:デフォルトの名無しさん [2009/07/29(水) 08:51:51 ] struct Point { int x; int y; Point(int x, int y) : x(x), y(y) {} }; struct Size { int width; int height; }; Size Hoge() { Point point; ... return *reinterpret_cast<Size *>(&point); …(1) return *reinterpret_cast<Size *>(Point(0, 0)); …(2) } 例が良くないかも知れないのですが、 この書き方ってC++におけるインスタンスの 生存期間的に問題はあるでしょうか?
153 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 09:10:29 ] >>152 (1)はダメ Hoge()を抜けた途端にpointのインスタンスが消滅してしまう
154 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 09:12:08 ] あほくさ
155 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 09:29:33 ] >>152 (1) はコピー返しなので問題ない (2) は生存期間以前にポインタでないものをポインタにキャストしてるから滅茶苦茶なことが起きるだろう
156 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 13:00:03 ] >>126 いやいや、一時オブジェクトを束縛して寿命を延ばす効果があるのはconst参照だけだろ。
157 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 13:44:20 ] 戻り値がconstである必要は無いというお話
158 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 16:19:06 ] throwはreturnやbreakと同じようにスコープを抜ける つまり自動変数のデストラクタ呼び出しが保障されてるんでしょうか?
159 名前:デフォルトの名無しさん mailto:sage [2009/07/29(水) 16:58:37 ] されます。例外が送出された時点でローカルスコープは「突然」終了し、 可能な限りスタックを巻き戻すことになってます。 なので、(一般に)デバッグ用途には使えません。 …メモリダンプを見ても変数の中身が消えちゃってるので。
160 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 00:15:28 ] 前にbcc5.5でboost::is_base_ofを使おうとしてた者です。あの後いろいろやってたらできました。(多分) 他にも使いたい人はいると思うんで一応載せときます。 struct yes_type{char t[100];}; struct no_type{char u[10];}; template<typename T,typename U> struct test_helper{ template<typename S> static no_type test(void const volatile * ,S ); static yes_type test(T const volatile * const,int ); }; template<typename T,typename U> class is_base_of{ struct pointer_type{ operator U const volatile *(); }; enum{ delived = sizeof( test_helper<T,U>::test(pointer_type(),0) ) }; public: enum{ value = delived == sizeof(yes_type), }; }; 使い方は is_base_of< Hoge,Piyo >::value とし、後のクラスが前のクラスの派生クラスの場合は1をそうでない場合は0を返します。 長文失礼しました。
161 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 00:29:38 ] あー、これだと両方同じ型を指定した時は必ず成功してしまいますね…。 型の比較なんてないですよね?どうしよう…
162 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 00:42:04 ] bcc5.5なんて糞コンパイラを窓から投げ捨てろ
163 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 00:48:00 ] VCの複雑さが無くなれば捨ててもいいけど・・・
164 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 00:49:51 ] コマンドラインで単なるC++コンパイラとして使うときに、 VCが特に複雑と言うほどBCCと何か違うことってあるか?
165 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 01:03:49 ] さっきのis_base_ofですが、value = ...の条件式に以下を加えてください。 !is_void<T>::value && is_class<U>::value && type_equal == sizeof(no_type) && is_voidやis_classや自分で作るかなんかしてください。 次にtest_helperに以下の関数を追加 static yes_type type_equal(T*); template<typename S> static no_type type_equal(S*); 最後にis_base_ofの一個目のenumに以下を追加 type_equal = sizeof( test_helper<T,U>::type_equal((U*)NULL) ), これで、抜けはありそうですが、とりあえず判定はできると思います。
166 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 05:36:55 ] >>158 例外がmainでcatchされずに飛び出るとterminateが呼ばれて 破棄処理が実行されない可能性がある
167 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 15:28:35 ] お勧めのC++用リファクタリングツールを教えてください。
168 名前:デフォルトの名無しさん mailto:sage [2009/07/31(金) 23:23:19 ] メモ帳
169 名前:デフォルトの名無しさん [2009/08/01(土) 00:05:34 ] mapとかsetをデフォルト引数にする場合ってどの様に書けば良いでしょうか? 下記のように、vectorっぽくやりたいのですが。 void func( set<int> s = set<int>(0) ) { if( s.size() == 0 ){ ... } else{ ... } } int main() { set<int> s; s.insert(100); func( s ); func( ); }
170 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 00:09:03 ] >>169 setやmapには、vectorのような要素数を指定するコンストラクタがないから、 単にデフォルトコンストラクタで初期化すればいい。 void func( set<int> s = set<int>() )
171 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 00:19:28 ] 質問なんですが、 #include<stdio.h> main() {int suuji[10],i,x,s,n; float r; i=0; s=0; while(x!=0){ if(i==50); printf("数字="); scanf("%d",&x); suuji[i]=x; n=i; i=i+1; s=s+y; } r=s/n; printf("平均=%d\n",&r); } の形を使って数字を幾つか入れてその平均点をfloatを使った状態でだしたいのですが数字が何も出てきません。 上のプログラムの修正をよろしくお願いします。
172 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 00:38:18 ] r=(float)s/n; printf("平均=%f\n",&r); あたりでうごく?
173 名前:169 mailto:sage [2009/08/01(土) 01:25:54 ] >>170 ありがとうございます。m(_ _)m
174 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 01:26:36 ] >>172 r=(float)s/n; を習ってないので使ってはいけないんですよ… なんででないのかわからない… %d→%fは直します。ありがとうございます!
175 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 01:41:41 ] ならこう。 #include<stdio.h> main() { float suuji[10]; float x, s, r; int i, n; i = 0; s = 0; while(x != 0) { if (i == 10) break; printf("数字="); scanf("%f", &x); suuji[i] = x; n = i; i = i + 1; s = s + y; } r = s / n; printf("平均=%f\n", r); }
176 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 01:50:14 ] よくみたらx初期化してないし、sに加算してないし そもそもC++のプログラムじゃないし レスした自分が恥ずかしい s+=x;な
177 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 01:55:47 ] 宿題スレでやれよ
178 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 01:56:32 ] まあC++コンパイラで通るからいいかなと思った。今は反省している。
179 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 01:57:53 ] >>177 そこはお客に丸投げしていただいたありがたい課題を解いて楽しむという反教育な場ですから。
180 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 04:01:34 ] >>177 すいません… >>178 C++じゃなかったんですか!自分はずっとC++と思い込んでました。 ありがとうございます。
181 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 04:46:33 ] >>180 なんていうか、先が思いやられるな。未来のこの人の先輩がんばってください。
182 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 11:53:51 ] >>180 いや、間違いなくC++だよ Cコンパイラでも通るかもしれないというだけで
183 名前:デフォルトの名無しさん [2009/08/02(日) 01:21:46 ] コンストラクタで例外投げてもいいですか?
184 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 01:22:50 ] shared_ptrとかauto_ptrとかの類をきちんと使っていれば、全然問題ないですよ。
185 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 01:22:54 ] いいですよ。
186 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 16:24:40 ] デストラクタで例外投げてもいいですか?
187 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 16:27:23 ] 恐いお兄さん達にリンチされるのでやめた方がいいです
188 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 16:28:37 ] わかりました やめておきますね
189 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 16:33:52 ] __ | / / __|__ .__/__ | | | . | | | | | | ー―――― ..| | |  ̄ ̄| ̄ ̄ | ̄ ̄ ̄ ̄ ∧ ∧ | \____ノ / V ヽ /┏╋┓ \ / ┗╋┛ \ < 2chでせいぜいほざいてろ。フフン (.`ヽ(`> 、 /_______ \ `'<`ゝr'フ\ +. 彡 ⌒ ⌒ ミ;;;! ⊂コ二Lフ^´ ノ, /⌒) , +ゞi" ̄ フ‐! ̄~~|-ゞ+ ⊂l二L7_ / -ゝ-')´ .+ ヾi `ー‐'、 ,ゝ--、' 〉;r' \_ 、__,.イ\ + `,| / "ii" ヽ |ノ (T__ノ Tヽ , -r'⌒! ̄ `":::7't ト‐=‐ァ ./ ヽ¬. / ノ`ー-、ヘ<ー1´| ヽ | :::::::::::::ト、ヽ `ー‐'",/ 、 \l__,./ i l.ヽ! | .| ::::::::::::::l ヽ `7ー.、‐'´ |\-、 ___________________________ ___ | | | | | | | | | | | | | || | |中|中|中|中|中|中|中|中|中|中|中|中|中||中|
190 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 19:14:40 ] >>186 デストラクタ内でキャッチするならいいよ
191 名前:デフォルトの名無しさん [2009/08/03(月) 07:57:09 ] ヤフーメッセンジャーのチャットのログを記録したいと思っています。 ブラウザのチャットのログの取得はわかるのですが、メッセンジャーなどのアプリからどのようにしてログを取得できるものなのでしょうか? サイトを探しましたが、どのサイトもHTMLソースの取得方法しか書いてありませんでした。 どうか教えてください。
192 名前:191 [2009/08/03(月) 08:19:38 ] libyahoo2というものがありまして自分で調べます。 ご迷惑おかけしました。
193 名前:デフォルトの名無しさん [2009/08/03(月) 18:24:02 ] 教えてください. 変数sに振幅値を入れておいて, サンプリング周波数fでsを再生したいのですが 以下のプログラムで再生することができません…. よろしくお願いします. #include <iostream> #include<windows.h> #include <math.h> #pragma comment(lib,"winmm") #define FILENAME "white-3dB.WAV" using namespace std; int test(){ int i; int f=1000; double s[48000]; for(i=1;i<48000;i++){ s[i] = sin(2*3.14*f*(i/48000)); } bool PlaySound (s,f,SND_MEMORY | SND_LOOP | SND_ASYNC); return 0; }
194 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 18:38:07 ] >>193 PlaySoundの前のboolは何? それと、PlaySoundにはちゃんと.wavファイルの形をしたデータを与えてやらないとだめだ 波形だけ与えても鳴らない あと、fって何さ、そこはHMODULEを渡すところでは? 最後に、スレ違い Win32APIの質問はWin32APIスレへどうぞ
195 名前:デフォルトの名無しさん [2009/08/04(火) 08:52:09 ] static const int MAP_X = 64; class A { int[ MAP_X ]; } 以上が定数式エラー出る defineではエラーでない。 C++風にconst使ってみたんだが配列確保には使えない認識でおk?
196 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 08:55:01 ] 変数名が無え…。
197 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 10:23:25 ] >>195 ちゃんと書けば、ちゃんと使える。 そうそう、古いコンパイラでは使えないかも知れない。
198 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 11:12:34 ] それが最新のVC2008EEなんだな 無料だから制限つけてるのか
199 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 11:15:31 ] >>195 実際のコードとコンパイルエラーを「そのまま」貼り付けてみて。
200 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 11:26:31 ] 原因がわかりました ×static const float MAP_X = 64; ○static const int MAP_X = 64; floatにしてたのが原因でした intに変更したら成功。
201 名前:デフォルトの名無しさん [2009/08/04(火) 11:38:22 ] アホか
202 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 11:39:20 ] static const intしかclass内での定数は定義できないと 規格票に書いてある 規格票はintではなく整数と書いてあるが
203 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 12:19:41 ] >>202 なら「static const 整数しか〜と規格票に書いてある」って最初っから言えよ。 どうせそんな書き方もしてないんだろうけどな。
204 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 14:52:11 ] 最初からもなにも >>195 みたいな不完全で実際のものと違うコード提示されたところで 的確な指摘なんて出来るわけないよな
205 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 17:16:36 ] enumで妥協
206 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 17:21:21 ] このあたり、いいかげんなんとかして
207 名前:デフォルトの名無しさん [2009/08/04(火) 20:39:31 ] PODデータでの値渡しとconst参照渡しの 一般的な速度の分岐点は何バイトくらい?
208 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 21:44:17 ] 環境も書かずに何聞いてんだ
209 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 22:06:47 ] >>203 エラーの出る最低限のサイズのコードを上げろ
210 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 22:13:00 ] >>207 エスパーして代表的な環境について述べます。 Linux + gccはどちらの場合も最高速を叩き出します。 Windows + vcはどちらも低速でした。 つまり、プログラムでチマチマ最適化を図るよりLinuxを導入するほうが 良いと思われます。
211 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 23:03:58 ] x86なら特に指定がなければVCもgccも同じl呼び出し規約を 使うのだからそんな速度の違いが出るわけない。
212 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 23:20:54 ] レジストリにのってるかどうか調べればいいんじゃねぇの
213 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 23:31:35 ] sjis→utf8の変換処理を自作したいのですが、 サンプルになるようなサイトてありますか? CとかVC++はみかけるんですがC++は見つからなくて… 環境はlinux+gccです
214 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 23:38:47 ] >>213 お前がほしいのはサンプルじゃなくてコピペ元だろ たぶんCのやつそのまま使えるから問題なし
215 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 23:42:54 ] ああ、レジスタか。 何言い出してんのかと思った
216 名前:212 mailto:sage [2009/08/04(火) 23:46:41 ] >>215 ふっ 素で間違えたぜ ごめんなさい
217 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 23:56:38 ] Releaseコンパイル後のexeファイルにクラス名とかがアスキーで残るんですけど(typeid用?) これを無くしたい場合はどうすればいいとですか…?
218 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 00:01:25 ] 邪道な方法ではUPXを使うとか?
219 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 00:14:23 ] 邪道臭いけど、名前丸見えではないようですし(zipのヘッダが見えた気はするけど・・・) これでも大丈夫そうです。ありがとうございました。
220 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 02:39:21 ] >>207 boost::call_traits あたりを見ると参考になるかもしれない。
221 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 08:11:38 ] >>217 コンパイルオプションの /GR を取ればいいってことかな? VS2005 だと、プロジェクトのプロパティの 「ランタイム型情報を有効にする」 → 「いいえ」 typeid の他に dynamic_cast がつかえなくなるっぽい。 そのあたりはややこしい話になるので割愛。
222 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 11:49:00 ] >>212 なんの疑問もなく読んでしまった。 だめだ今日は。。。
223 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 15:17:49 ] localeをjapaneseにするとlexical_castで整数を文字列に変換したときに 3桁ごとにコンマがついてしまうのですが、これを防止するにはどうしたら よいのでしょうか?
224 名前:デフォルトの名無しさん [2009/08/05(水) 15:21:44 ] c++でネットワーク上のファイル(天気予報XMLファイル)を取得したいのですが、 方法がわかりません。 ググってみるとVC++ではできるようなのですが、 Linux + gcc環境ですので参考になりません。 最悪 system() + wgetコマンド という手がありますが、 もっとスマートな方法(ライブラリとか)があったら教えて下さい。
225 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 15:24:05 ] >>223 localeを"C"に戻す いちいち面倒ならLC_NUMERICだけjapaneseに変えないでおく
226 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 20:41:08 ] >>224 >最悪 system() + wgetコマンド という手がありますが、 の方がスマートだよ.
227 名前:デフォルトの名無しさん [2009/08/06(木) 01:36:46 ] Boost.Asioを使ってゴリゴリ書くとか。
228 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 02:59:42 ] #include <boost/shared_ptr.hpp> #include <boost/enable_shared_from_this.hpp> class A :public boost::enable_shared_from_this< A > { public: A(){ /*shared_from_this();*/ } void F(){shared_from_this(); } }; int main() { boost::shared_ptr< A > a( new A() ); a->F(); return 0; } c-torで、shared_from_this()すると例外が飛ぶんだけど、何で?
229 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 07:20:09 ] >>228 まだ生成が済んでないオブジェクトへの shared_ptr は存在しない、と考えれば わりと自然な気がする。 仮にそこで shared_ptr が得られたとして、その後に例外が発生してコンストラクタが 中断したらどうなるの?とか。
230 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 07:31:35 ] >>228 コンストラクタの中では A a; した状態と同じ、ってのもあるな。 www.boost.org/libs/smart_ptr/enable_shared_from_this.html 仕様を確認すると、事前条件 "Requires" に以下の記述がある。 > There must exist at least one shared_ptr instance p that owns t
231 名前:デフォルトの名無しさん [2009/08/06(木) 13:08:19 ] 「このクラスを継承してサブクラスを作ることはない」っていうクラスを記述するとき、デストラクタにvirtual付けますか? 自分は「このクラスを継承しちゃダメ」という意思表示の意味でvirtual付けてないんだけど、 そういうやり方って一般的なのかな? 一応どっかでそういう意見を見て、ふーんって思ってやってたことなんだけど、正しいことなのか今になって不安になってきた。
232 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 14:09:29 ] コンストラクタをprivateに封じて代わりにstaticファクトリを提供すれば誰も継承できないクラスの完成
233 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 14:11:42 ] >>231 付けない。 継承される予定のクラスでも、アップキャストして使う予定のない物は、非virtualのprotectedデストラクタにする。 ここから先は個人的な好みなので参考程度に聞いて欲しいが、 「データメンバを持たない仮想関数のみで構成されたクラス」しか継承する事は考えない。 データメンバを持つクラスを継承したいと思った時は、コンポジションにする。
234 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 14:11:55 ] 普通は書かないかな つーか継承をコンパイルエラーにする記述とか無いもんかな インターフェイスとファクトリだけ提供して実装は隠す、位しか実装の継承を禁止する方法が思い浮かばない
235 名前:デフォルトの名無しさん [2009/08/06(木) 14:32:23 ] final宣言ほしいよね。
236 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 14:34:41 ] finalって0xで入るんじゃなかったかな
237 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 14:46:36 ] >>231 付けない。例えばstring(basic_string<char>)なんかも継承を前提としていので 仮想デストラクタではなかったと思う。
238 名前:237 mailto:sage [2009/08/06(木) 14:47:23 ] >>237 継承を前提としていので× 継承を前提としていないので○
239 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 15:13:51 ] boostのvaultとかsandboxにnon derivableとかいうのがあったと思う
240 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 18:01:01 ] [[final]]
241 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 21:35:36 ] 何度見てもキモいシンタックスだ。
242 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 21:51:58 ] #define final [[final]] ってするだけだろ。
243 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 03:46:33 ] いいかげん define を捨てたい俺には、 それはもっと悪い。
244 名前:デフォルトの名無しさん [2009/08/07(金) 09:12:02 ] 基本的にはC++に関することではなく、Windowsプログラミングに関することですが、 開発環境がC++のため、質問させていただきます。 例えばIE7のようなWebブラウザがあるとします。 そのWebブラウザと連携させるようなツールを使うにはどうすればいいのでしょうか? 具体的には毎回同じ文字でログイン名などを入力するのが面倒なときに、自動で入力して そのあとにログインボタンをクリックし、勝手にログインしてくれるようなツールを作成したいと思ってます。 一部ではAmazonの激安祭りなどでスクリプトとか呼ばれているものです。 使用用途はそういったものではなく、単純にプログラムの勉強としてそういったものを作る方法が 勉強したいだけです。(これは本当です。) わかる方がもしいらっしゃれば回答よろしくお願いいたします。
245 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 09:38:50 ] じゃ俺は開発環境がC++なんで、RPGの作り方教えてください
246 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 09:39:36 ] ついでに開発環境がC++なんで、エロゲの作り方教えてください
247 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 09:44:38 ] >>244 鼬害。WebProg板へ。 >>245 鼬害。ゲ製板へ。 >>246 鼬害。Pinkのどっかへ。
248 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 09:51:38 ] Pinkのどっか行ってきます
249 名前:272 mailto:sage [2009/08/07(金) 11:29:26 ] どうしても参照を付け替えたいのですが、何か良いアイディアはないでしょうか? int a = 1; int b = 2; int& r; のときに動的にrをaかbを指すように付け替えたいです。 無理は承知でお願いします。
250 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 11:35:05 ] >>249 int& r = boolean ? a : b; ではだめかいな?
251 名前:250 mailto:sage [2009/08/07(金) 11:36:36 ] 後は int * p; if(xxx) {p = &a;} else {p = &b;} int& r = *p;
252 名前:272 mailto:sage [2009/08/07(金) 11:42:15 ] >>251 その方法でいけました! まさかこんな方法があろうとは。 本当に有難うございました。 一回途中にポインターをかませば良かったんですね。