1 名前:デフォルトの名無しさん [2008/03/30(日) 01:50:26 ] エスケープシーケンスやWin32APIなどの環境依存なものでもOK。 ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.50【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1204124447/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
596 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 14:05:03 ] なんとなく分ったような分らないような・・・・ 同じ英数字からなる文字列比較でもプログラムによって使っている関数が違うのは 書き手(プログラマー)の意識の違いによる? さらにワイド文字とマルチバイト文字の違いがよく分らん。。。。 出直してきます。スレ汚してすみません。
597 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 14:06:53 ] すまん *a = new double[x] じゃなくて a = new double*[x] だ
598 名前:デフォルトの名無しさん [2008/04/11(金) 14:20:42 ] >>597 それだけじゃねーだろ。
599 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 15:19:15 ] >>595 593じゃないけど、あえて言うなら「投げっぱなしの馬鹿を見てしまったこと」が 「嫌なこと」なんだろう。
600 名前:デフォルトの名無しさん [2008/04/11(金) 20:21:49 ] deleteで落ちちゃうんだけど、原因わかりません>< このコードで落ちます・・・。 int i; char *lpary[4]; for (i = 0; i < 4; i++){ lpary[i] = new char[256]; } for (i = 0; i < 4; i++){ delete [] lpary[i]; } 誰か教えてください。
601 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 20:23:53 ] 落ちる要素は特に見当たらないが・・・。 多分、他で色々やってる部分でマズいことやってんじゃないかと。
602 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 20:24:46 ] for (i = 0; i < 4; i++){ delete lpary[i] } delete[] lpary;
603 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 20:25:53 ] >>602 おいおい^^;
604 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 20:26:53 ] よく見てなかった すまん忘れてくれ
605 名前:600 mailto:sage [2008/04/11(金) 20:29:44 ] すいません。原因わかりました。 newとdeleteの間でやってる処理で確保したポインタに別のポインタ 渡してしまってた・・・。 まじごめん;;
606 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 20:30:25 ] 悪い事いわないから、vector 使え。
607 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 23:28:52 ] >>596 >さらにワイド文字とマルチバイト文字の違いがよく分らん それを調べるのが先だということに気づかないの?
608 名前:デフォルトの名無しさん mailto:sage [2008/04/11(金) 23:30:06 ] 出直してくるって言ってるんだからほっとけよ
609 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 00:33:20 ] 変数をStringだとかChar型で指定することってできますか?
610 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 00:34:10 ] ????????
611 名前:デフォルトの名無しさん [2008/04/12(土) 00:56:30 ] 静的なメモリを確保をしたクラス内に動的に確保したクラスがあるとします この場合exit(0)が実行された時に正しく破棄が行われますでしょうか?
612 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 00:59:02 ] >>611 だいたいOSがうまく解放してくれる・・・かもね。 そんな保障はどこにもない。ちゃんと解放するかJava等に移行しましょう。
613 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 01:14:07 ] ぬるぽ
614 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 01:15:38 ] >>611 ライブラリの仕様によるけど、 ・静的なオブジェクトのデストラクタ⇒呼ばれる ・main()から辿ってその時点までのスタック上にあるオブジェクトのデストラクタ⇒呼ばれない つまりスタックの巻き戻しは行われないが通常のクリーンアップルーチンは呼ばれる、 が一般的なのでは。何か重要な後処理が必要なら atexit でも書いとくべきだな。
615 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 01:34:05 ] atexitを使うことにします ありがとうございます
616 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 02:10:32 ] constポインタpDataのメンバstd::deque<Log> LogDataを参照するpastLog const std::deque<Log>& pastLog = pData->LogData を上のように作ってそのiteratorを使用したいのですが const std::deque<M3Log>::iterator itr = pastLog.begin(); とすると 左オペランドを扱う演算子が見つかりません (または変換できません) (新しい動作; ヘルプを参照)。 と怒られます 何処をどうしていいのかわかりません、アドバイスをいただけないでしょうか
617 名前:616 mailto:sage [2008/04/12(土) 02:12:31 ] 訂正 const std::deque<M3Log>::iterator itr = pastLog.begin(); ↓ const std::deque<Log>::iterator itr = pastLog.begin();
618 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 02:12:40 ] c++ は良く知らないけど、 std::deque<Log>::const_iterator itr = pastLog.begin(); じゃないの?
619 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 02:19:58 ] >>618 ありがとうございます 無事コードがコンパイルを通るようになりました const_iteratorなんてあったのか・・・
620 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 03:41:33 ] >>619 >const_iteratorなんてあったのか・・・ 超ワロタじゃないかよ
621 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 04:19:52 ] 静的確保と動的確保でプライベートメンバ関数の実行に違いが出るようなことは有るでしょうか?
622 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 09:55:51 ] 外から借りない限り終了すれば仮想プロセス空間ごと消滅するかと。
623 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 11:01:31 ] さあて。delete thisするんでない限りは、まー無いんでないかね。
624 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 12:57:40 ] #define sucide delete this
625 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 14:40:30 ] suicide
626 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 14:49:06 ] oh misu superu
627 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 14:50:30 ] ifの条件部で変数を宣言したい時に、boolとして評価できない型だとコンパイルエラーになりますよね std::set::const_iterator it = hoge.find(....); if (it != hoge.end()) { // ここで it を使う } のようなことをするときにifのブロック内にitのスコープを限定して if ((std::set::const_iterator it = hoge.find(...)) != hoge.end()) { のようなことをしたいんですけど無理ですか?
628 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 15:23:43 ] 無理
629 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 15:39:39 ] for ( std...it = hoge.find(...); it != hoge.end(); ) { break; } おすすめはしない
630 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 15:40:03 ] { std::set::const_iterator it; if(...){...} }
631 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 15:40:50 ] あるいは空スコープを使うとか。 { std...it = ...: if(){ } }
632 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 15:54:26 ] 無理やり template<typename T, template<class> class Comp> class eval_lapper { public: eval_lapper( std::pair<T, T> rhs ) : obj_(rhs.first), target_(rhs.second) {} operator bool() const { return Comp<T>()(obj_, target_); } T& obj() { return obj_; } const T& obj() const { return obj_; } private: T obj_; T target_; }; int main() { std::set<int> s; //s.insert(123); if( eval_lapper<std::set<int>::const_iterator, std::not_equal_to > it = std::make_pair( s.find(123), s.end() ) ) std::cout << *(it.obj()) << std::endl; return 0; }
633 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 15:57:33 ] ifの評価部分ってboolのオーバーロードがあったらちゃんとboolとして評価してくれるの?
634 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 15:58:44 ] してくれるが、if 文以外の所でも本当に bool 値として解釈されて欲しい場合でなければ bool のオーバーロードはすべきじゃない。
635 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 16:00:12 ] if 文だけでそう解釈されて欲しい場合は、 普通には使われないようなポインタへのキャスト演算子を オーバーロードするのが一般的。 メンバポインタとか。
636 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 16:41:51 ] >>632 面白いなやり方だな でも、lapper => wrapper じゃね
637 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 16:53:02 ] //test.h struct test{ int a; test(int a_) : a(a_){} }; //instance.cpp #include "test.h" test obj(1024); //program.cpp #include <iostream> #include "test.h" extern test obj; int main(){ std::cout << obj.a << std::endl; return 0; } 別々の翻訳単位に型testが定義されてるけど、同一の型として認識されるの? VC8ではコンパイル通った。
638 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 17:01:05 ] そりゃ通るだろ 同じヘッダインクルードしてるんだし
639 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 17:01:59 ] メンバ変数が一部が#ifdefあたりで囲んであると 場合によっては非常に愉快な話になるけどね
640 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 17:09:35 ] 愉快なというかバグな話だろ
641 名前:デフォルトの名無しさん mailto:sage [2008/04/12(土) 22:59:36 ] 中々原因が掴めず笑うしかないとかそういうアレだろう 鼻から悪魔が出たらもっと愉快だな
642 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 22:40:49 ] String name; と String^ name; の違いはなんですか?ハンドルの意味がわかりません
643 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 22:48:53 ] >>642 C++/CLI はスレ違いなのです。 C++/CLI part3 pc11.2ch.net/test/read.cgi/tech/1206447234/
644 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 22:50:41 ] >>642 とりあえず「C++/CLI ハンドル 自動変数」でググったら説明が見つかると思う。 それで分からなかったら、もう一度おいで。 # CLIってちょい過疎気味の本スレしか無いのな
645 名前:デフォルトの名無しさん [2008/04/14(月) 01:32:44 ] コピーコンスタクタ辺りで質問です。 template <bool M> struct P { int* _p; P(int* v=NULL) : _p(v) {} P(P& v) : _p(v.release()) {} // (1) ~P() { if(M && _p) delete _p; } void reset(int* v=NULL) { if(M && _p && _p != v) delete _p; _p = v; } int* release() { int* temp = _p; _p = NULL; return temp; } }; P<true> pf(int n) { return P<true>(new int(n)); } int main() { P<true> a = pf(3); } 上記だと error: no matching function for call to ‘P<true>::P(P<true>)’ とコンパイルエラーがでます。 しかし (1) を template <bool _M> P(P<_M>& v) : _p(v.release()) {} にするとエラーにならずにコンパイルできるようになります。なぜコンパイルエラーがでなくなるのでしょうか? コンパイラは gcc version 4.0.1 (Apple Inc. build 5465) です。
646 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 01:43:50 ] >>645 コピーコンストラクタをテンプレート関数にして異なるテンプレート引数の型でも受け取れられるれりれるようにしたから。
647 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 01:46:07 ] >>645 よく分からんけど、VC8だとどちらもコンパイル通ったぞ
648 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 01:49:12 ] >>647 エスパーすると645は(1)をP(P& v) : _p(v.release()) {}とした上でソースコードのどこかで P<false> oldObj; P<true> newObj(oldObj); とでもしているんだろう。
649 名前:645 [2008/04/14(月) 01:52:20 ] >>646 テンプレート引数の型は書き変える前も後も true しか扱わないのに異なる型を受け取れるようにしないと いけない理由が分かりません。 途中で P<false> に変換されているのも確認できませんでした。 >>647 gcc だけで起きる問題なんでしょうか… >>647 いやしてないのです。上記のソースのみです。
650 名前:デフォルトの名無しさん [2008/04/14(月) 02:17:53 ] 質問です。4桁の乱数を取得する関数なのですが if(num[i] == num[j])以降のdowhileで必ずループに入ってしまうのですが 原因を教えていただけませんか? void random::gt(){ srand((unsigned) time(NULL)); num[0] = rand() % 10; if(num[0] <= 0){ do{ num[0] = rand() % 10; }while(num[0] <= 1); } //その他乱数取得 for(i=0;i<4;i++){ if(i <= 4){ for(j=1;j<4;j++){ num[j] = rand() % 10; if(num[i] == num[j]){ do{ num[j] = rand() % 10; system("PAUSE"); }while(num[i] != num[j]); } }; } }; }
651 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 02:47:43 ] >>649 Pは接頭語みたいなもので一部の例外を除いて単独では使えない この場合だとP<true>とP<false>が型 たとえばP<true>を定義したとき、もしP(P&)の記述が許されると コピーコンストラクタP(P<true>)か 引数付きのコピーじゃないコンストラクタP(P<false>)か曖昧になる
652 名前:>650 mailto:sage [2008/04/14(月) 03:22:48 ] 日本語でおk dowhileは必ず1回はループ内の処理を実行するが? あと、その貼ったソースはそのままか?変更して貼ってない?
653 名前:645 [2008/04/14(月) 03:33:40 ] >>651 あーなるほど。コピーコンストラクタかコンストラクタが曖昧になるんですね。 P<true> -> P<false> の変換がされると嫌で書き方に困っていたのですが P<true> -> P<true> OK P<true> -> P<false> OK P<false> -> P<false> OK P<false> -> P<true> NG の時に template <bool M> struct P { template <bool _M> P(P<_M>& v); ... }; template <> template <> P<true>::P(P<true>& v) : _p(v.release()) {} //template <> template <> P<true>::P(P<false>& v); // NG template <> template <> P<false>::P(P<false>& v) : _p(v._p) {} template <> template <> P<false>::P(P<true>& v) : _p(v._p) {} みたいにもできるってことですね!ありがとうございました。
654 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 03:33:47 ] あああ、すいません if(num[i] == num[j]){のところで 変数num[i]とnum[j]が違っていても処理をしてしまう原因 を知りたかったのです ソースは特に変えてないと思うのですが どこかおかしいでしょうか
655 名前:645 [2008/04/14(月) 03:36:18 ] 違った。P<false> -> P<true> が嫌だった。です。
656 名前:650 mailto:sage [2008/04/14(月) 03:39:19 ] またもすいません >>654 は>.650です・・・
657 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 09:29:44 ] >>650 i が 0 から 3 をとりながら動き、 そのループのなかで j が 0 から 3 をとりながら動くんですよね。 すると, i = j ならば, num[i] == num[j] となって、system("pause") がかならず 実行されることになります。 なさりたいことは、こんなのでしょうか? (確認環境 WindowsXP, 処理系 cygwin(gcc 3.4.4) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6239.txt
658 名前:650 mailto:sage [2008/04/14(月) 11:06:42 ] >>657 まさにそんな感じです ありがとうございます
659 名前:657 mailto:sage [2008/04/14(月) 11:24:42 ] >>658 バグってました。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6240.txt
660 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 14:51:59 ] set<Class> a, b;とあってaからbに含まれていない要素を取り除きたいときに remove_ifなんかのアルゴリズムでスマートに書けますか?
661 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 15:06:05 ] operator^
662 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 16:59:15 ] >>660 #include <iostream> #include <algorithm> #include <set> #include <boost/lambda/lambda.hpp> #include <boost/lambda/bind.hpp> int main() { namespace bll=boost::lambda; std::set<int> a,b; a.insert(1); a.insert(2); a.insert(3); b.insert(2); b.insert(3); std::remove_copy_if(a.begin(), a.end(), std::ostream_iterator<int>(std::cout), bll::bind(std::find<std::set<int>::iterator, int>, b.begin(), b.end(), bll::_1 ) == b.end()); return EXIT_SUCCESS; } uu-n...
663 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 17:49:02 ] huninnkidearuboost::egg::lazywotukattemitayo #include <iostream> #include <algorithm> #include <set> #include <boost/lambda/lambda.hpp> #include <boost/egg/lazy.hpp> #include <boost/lambda/bind.hpp> #include <boost/assign/std/set.hpp> struct base { template< class Myself, class Arg0, class Arg1, class Arg2 > struct apply { typedef Arg0 type; }; template< class Result, class Arg0, class Arg1, class Arg2 > Result call(Arg0 begin, Arg1 end, Arg2 value) const { return std::find(begin, end, value); } }; typedef boost::egg::function<base> op; boost::egg::result_of_lazy<op>::type const find_lazy = BOOST_EGG_LAZY({}); int main() { namespace bll=boost::lambda; using boost::assign::operator+=; std::set<int> a,b; a+=1,2,3; b+=2,3; std::remove_copy_if(a.begin(), a.end(), std::ostream_iterator<int>(std::cout), find_lazy(b.begin(), b.end(), bll::_1) == b.end()); } uuu-nnn...
664 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 17:52:02 ] p_stade乙
665 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 18:01:20 ] >>660 a = bはだめなの? だめだから聞いているんだろうけど。
666 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 18:06:40 ] >>665 横からだけど a : 10,20,30,40 b : 20,50 この場合多分望む結果は a : 20 だろうけど、>>665 だと間違った結果を返す。
667 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 18:37:09 ] vectorやらlistで vector<int>の要素が 1 2 (空白) 3 4 (空白) の様に途中に空白をいれることはできるのでしょうか?
668 名前:デフォルトの名無しさん [2008/04/14(月) 18:46:45 ] VC++でPC情報を取得するPGを作成します。 プロジェクト作成は(Win32とか)どれを選ぶのが 適当でしょうか?
669 名前:デフォルトの名無しさん [2008/04/14(月) 19:40:07 ] >>668 Linux+GCCがお勧め
670 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 19:42:55 ] .exe が出来るならどれでもいいと思う。
671 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 20:02:18 ] とあるクラスに関数を一個追加しようとしたところ .hファイルに関数の本体を書き出すと正常にコンパイルが通るのに .cppファイルに書き出すと C2039 'foo' : 'hoge' のメンバではありません。 となってしまいます これはどういう事でしょうか・・・
672 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 20:05:04 ] ソースを見せれ
673 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 20:10:42 ] f´'´ ノ ヽ l 、 \! l / / // ,.ィ´ !', ト、 ヽ. ヽ . レ′, / //_,..イ// ,| l |lλぃ い. ', } / { ‐7Ζ_∠!イ 〃 /リ,}/┤!」l 小 ! ノ i| 八//'゛ -`l 〃 /ノ'´ j ! |l/| iイ/ ヽ|l//イ ャ''Tェ歹''`y゙/ 'ヾ歹¨リ`イ!ノ// まさか、ロリコンじゃないわね・・・ ) 〃A ``''''"´ '^ r; `'''"´/クK/ Y/ !トヘ. //// //// /.ィi| ;| |i( l|`Ti\,___ '⌒) ,∠lj_|iリ {い ヾLr┤:.:.:.:.`:、__,,..イ;:.::.:./勹_」! ``ァ;=<´ ̄``ヽ:ヽ;‐-/;/``Tr-.、
674 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 20:13:11 ] >>671 >.cppファイルに しか書いてなかったとかいうオチだったら、君が泣くまで殴るのをやめない。
675 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 20:14:56 ] >>672 仕事でのデータが含まれてるのでちょっとソースは公開できないですorz >>674 インテリセンスで関数宣言を確認してから中身を書いてるのでそれはないと思います
676 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 20:25:23 ] 問題が再現するコードを作ってそれを貼ればいいじゃん。
677 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 20:27:54 ] テンプレート関数だったらお前の殴る
678 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 20:39:03 ] hppで解決♪
679 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 20:58:05 ] リビルドし直したら通った・・・ これはどういう事??
680 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 21:22:35 ] VCではよくあること
681 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 21:53:28 ] そしてインテリセンスが延々と更新されないことも
682 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 21:58:23 ] インテリセンスが嘘つくのも。
683 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 21:58:43 ] >>667 vector<int>に整数以外のものは入れられません。 仮に、負値を例外として扱ってよいなら空白の代わりに-1を入れておくと言う手もなくはありませんが、 boost::optionalを使ってみてはどうでしょう。
684 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 22:18:55 ] メモリが断片化している場合、ポインタに+1した場合はきちんと断片先に飛んでくれるんですか? それとも型サイズ分だけ強引にアドレスが+1されるんですか?
685 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 22:21:43 ] 断片化? どういう状況を言ってるんだ?
686 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 22:22:45 ] vectorではなくdequeの実装を言っているのかもw
687 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 22:25:23 ] deque のことなら、イテレータに +1 したら断片化先に飛ぶけどポインタは当然無理だな。
688 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 22:26:51 ] >>685 1つのデータがメモリに書き込まれる時は必ず連番のアドレスに配置されるんですか?
689 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 22:27:37 ] >>688 少なくとも仮想アドレスは連番だが。 物理アドレスは知らんがな。
690 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 22:28:51 ] STLとかboostみたいので RECTとかSIZEを包んだクラスはありますか?
691 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 22:31:41 ] CRectならMFCにあるけどな…
692 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 22:31:51 ] WTLにも
693 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 22:32:58 ] >>689 つまり&で表示されるアドレスは仮想でWindowsが物理メモリの番地とリンクを取って隙間に埋め込んでるから考えなくていいってことですね ありがとうございました。
694 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 22:38:39 ] >>693 それでいいのか? 本当にそれでいいのか?w
695 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 22:43:16 ] C++でプロパティー的なものを表現する場合 getとsetはつけたほうがいいの?それともOR?
696 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 23:04:14 ] 漢は黙ってpublic: