1 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 21:21:26.11 ] エスケープシーケンスやWin32APIなどの環境依存なものでもOK。 ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.76【環境依存OK hibari.2ch.net/test/read.cgi/tech/1312621728/ ◆ソースのインデントについて 半角空白やTABでのインデントはスレに貼ると無くなります。 そのため、アップローダーに上げるのも手ですが直接貼る場合は、 全角空白か に置換すると見栄えだけはよくなります。 【アップローダー】(質問が長い時はココ使うと便利) codepad.org/ (コンパイルもできるし出力結果も得られる[]privateをチェック) ideone.com/ (時間帯によってはcodepadが重い事があるのでここも利用)
75 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 17:41:39.80 ] >>70 >みたいに0で桁数を揃えるフォーマットにするにはどうしたらいいですか? 絶対ないというならいいけど、int 123456 の時に "23456" か "123456" の どっちになって欲しいか書いたほうがいいと思う。
76 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 18:32:08.83 ] class A { enum B {aaa, bbb, ccc} } int main(){ A::B b = A::aaa; // ※1 return 1; } 「※1」の右辺に、凄い違和感があって、 「A::B.aaa」か「A::B::aaa」ってなるのが妥当に思えるのですけど、 何でcの仕様がこうなっていて、 何に私が悩んでいるのか解決できるようなエスパーがいたら、 助言をして欲しいです。よろしくお願いします。
77 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 18:32:59.19 ] 禿がenum嫌いだから
78 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 18:36:48.96 ] 64です。 >>67 ありがとうございます。スッキリ出来ました。
79 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 18:46:53.65 ] >>76 俺も初めは違和感だったな それにC#ではA.B.aaaとなるし 考え方だがCでは整数に名前が付いてるだけ、 くらいの認識と考えれば、その言語仕様も少し納得しやすいかもしれない
80 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 18:56:04.21 ] Aのなかにデロ〜ンとaaa bbb cccが漏れてるからそうなるわけで
81 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 19:02:47.35 ] C++11でenum classが導入されてちゃんとクラススコープに入ったenumがつけるようになるんだったけか。
82 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 19:20:08.60 ] namespace ENUM{int aaa(){return 0;}int bbb(){return 1;}int ccc(){return 2;}} typedef int(*ENUM)(); // これで全て解決だ!
83 名前:76 mailto:sage [2011/12/17(土) 19:22:39.05 ] >Aのなかにデロ〜ンとaaa bbb cccが漏れてるからそうなるわけで つまり、enum自体はc++的なものではなくてc的なものなので、グローバルに展開されてしまうってことですね。 ただし、c++なので、クラス内や名前空間内に限定することは可能になっている、と。 納得できました。 ありがとうございます、>>79 ,>>80 ,>>81 。
84 名前:76 mailto:sage [2011/12/17(土) 19:23:29.46 ] >>83 もありがとうございます。
85 名前:76 mailto:sage [2011/12/17(土) 19:24:10.67 ] ×>>83 ○>>82 スレ汚し失礼しました。
86 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 21:32:25.42 ] 質問 C++で、GLSLのnoise関数のような関数はありますか? つまり、ある値を入に対し、決まった、予想の付かない値を返す関数なのですが
87 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 22:33:45.66 ] コピーコンストラクタ・operator=に関して一件教えてください。 コピーコンストラクタを用意する際には、 operator=も用意するように、 と教えていただいたので、そのようにしてました。あるとき、 そのoperator=の最後に記述する「return *this;」を忘れていました。 ところが、特に問題が出ていませんでした。 これは記述する必要がないのでしょうか?
88 名前: ◆QZaw55cn4c mailto:sage [2011/12/17(土) 22:36:15.47 ] >>86 適当なhash関数はいかが?MD5/SHA-1/2(256) とか。
89 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 22:47:36.22 ] >>88 ありがとうございます 検索してみるとwww.studyinghttp.net/md5 このページを見つけました しばらく見て参りますが、他に良い解説サイトなどありましたらご紹介くださいませ
90 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 23:13:57.89 ] >>87 下に示すような記述をする為には、自身を返す必要があるから。 従って、代入した結果を必要としないのなら問題にならない。 -- YourClass foo, bar, baz; foo = bar = baz;
91 名前:65 mailto:sage [2011/12/17(土) 23:25:10.40 ] 「codepad」でエラーになる理由を教えていただけませんか? codepad.org/VybcCvXY ideone.com/WA7TG
92 名前:65=91 mailto:sage [2011/12/17(土) 23:34:02.42 ] ideone.com/WA7TG ttp://www.geocities.jp/ky_webid/cpp/library/027.html 関数のプロトタイプ宣言で、throw(ココ)に書く内容でどのような変化があるのか調べています。 ↑のページの「std::bad_exception」の説明に関して試しています。 178行目の「i2 = hoge5;」において、54行目の関数が呼ばれています。 このとき、 プロトタイプ宣言で、54,55,56のパターンや、 throwする例外オブジェクトで、60,61,62の内容を試すのですが、 「std::bad_exception」がthrowされません。 どこを修正すると説明の通り、「std::bad_exception」がthrowされるか教えていただけませんか? よろしくお願いします。
93 名前:65=91 mailto:sage [2011/12/17(土) 23:49:52.60 ] あと、 「eclipseのc++」や「ideone.com」で試した際と、 「Visual c++」で試した際と、 の間に挙動の違いがあって、205行目が、 前者で実行されない 後者で実行される のですが、何故なのでしょうか? gccでは、宣言以外の例外発生の後に即terminate(); visual c++では、プロトタイプ宣言のthrow()を無視している のでしょうか? ideone.com/qqqhp ※60行目、178行目、205行目
94 名前:65=91 mailto:sage [2011/12/17(土) 23:57:49.65 ] 最後に、(いろいろ問題出そうですが、) 158行目の 「hoge5」 とした場合に、問答無用で、 「(int)hoge5」 「int(hoge5)」 とした場合と同じにすることは可能でしょうか? 可能であれば教えてください。 (型の指定がない場合は、int(T)としたい。が、代入先がboolの場合はbool。「.」や「->」など他のoperatorも残したい。)
95 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 00:02:42.24 ] >>60 ありがとう
96 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 01:41:15.51 ] >>91 エラーの理由をみるにcodepadでは(その警告を出すなら)警告もエラー扱いする設定になってる。 そしてそのソースに対してはクラス定義でのメンバの宣言順とコンストラクタでのメンバ初期化子の順序が違うと警告がでてるからエラーになる。
97 名前:91 mailto:sage [2011/12/18(日) 02:53:35.67 ] >>96 なるほど。理解できました。ありがとうございます。 エラーの内容が続くwarningで示されていたとは。 独立しているのだと勘違いして、warningは無視していました。 codepad.org/lTFa56Ar 動きました。
98 名前:87 mailto:sage [2011/12/18(日) 02:57:54.25 ] >>90 >foo = bar = baz; { bar = baz; foo = bar; } これと等価だと思っていました。わかりやすい説明ありがとうございます。
99 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 03:16:04.70 ] 何度も失礼します。 codepad.org/OuxHRqHa で、41行目にエラーがあり、その内容は、 「定義されていない変数(名)へのアクセスがある」 といったものなのですが、 Visual c++ 2010 Expressで試すと、素通りされてしまいました。 利用していないメソッドの場合も確認してくれるようにするには、どのような設定をすればよいのでしょうか? Visual c++のスレは一週間くらい人大杉で書き込めませんでした。
100 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 03:38:14.38 ] >>99 そりゃ hoge_ が定義メンバにも無いし 継承もしてないからじゃないの?
101 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 03:54:06.53 ] もしかして、メモリリークって、Windowsだと、そのプロセスが終了すれば開放される?
102 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 04:59:59.92 ] Visual C++ でコンソールアプリケーションでプロジェクトを作成して、 コンソールの他に、 独立した子ウィンドウをつくって、そこでなにやら処理したいのですけど、 インスタンスハンドルやらウィンドウハンドルやら説明を読んでも読んでもさっぱりわかりません。 そんなソースを示してくれているページを知っていたら教えてください。 簡単であれば書いてくれると助かります。
103 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 05:20:53.60 ] 開放される
104 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 05:52:09.57 ] >>102 です。 変な質問して申し訳ありませんでした。自己解決しました。忘れてください。
105 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 08:30:59.04 ] c++のように、演算子をオーバーロード・オーバーライドできる言語って少ないんですか? c++しか知らなくて、Javaをはじめてみたのですけど、不便で仕方がないかなぁ、なんて…、態度でかくてすみません。
106 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 08:42:28.35 ] C#とかScalaとかHaskellとかPythonとか
107 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 09:48:10.70 ] javaもoperatorみたいなもんが あれば良かったのにね〜 文字列は+=できるのにね
108 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 11:10:52.87 ] operator定義なんて邪悪でしか無いだろ いらんわこんなもん
109 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 11:15:28.01 ] forr.Add(bar) とかになるん?
110 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 11:17:41.86 ] C++で質問です。 クラスCHogeが構造体m_hoge[5]をメンバ変数として持つ場合、 まとめて初期化することは出来ますか?
111 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 11:27:26.08 ] C++11なら可能
112 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 11:27:45.79 ] PODなら配置new そうでないならアラインドストレージの配列にして配置new
113 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 11:28:44.51 ] コンストラクタ
114 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 11:32:56.34 ] > いらんわこんなもん 自分に必要ないなら使わなきゃいいだけなのに、 必要もないのに使って「いらんわ」ってアホすぎ。
115 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 11:37:36.67 ] >>114 使ってないよ なんで使ってると思ったの?
116 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 11:48:11.32 ] ああすまん、自分には必要ないけど、他人には必要ということが理解できないアホだったのね。
117 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 12:14:10.87 ] まあこんなもんに必要性感じてるアホよりマシだけどね
118 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 12:20:16.97 ] 感じてないよ なんで感じてるとおもったの? (w
119 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 12:26:28.99 ] 7月の段階で民主党が2兆円の復興予算を組んだとき 自民党が要請した復興予算は累計17兆円 自民党の17兆が7月時点でに決定されていたのなら 今の日本はもう少し違って居た筈だ ちなみに関東大震災のときは復興予算として現在の価値にして150兆円以上を組んでいた。 この事実を知れば、予算の規模の小ささ、ましてや増税なんて奇知涯にも程があると思わざる負えない。
120 名前: ◆QZaw55cn4c mailto:sage [2011/12/18(日) 12:38:33.64 ] >>119 で、その17兆とやらの財源は?東電売却?
121 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 12:40:02.40 ] まー補正予算をチマチマ組むより、一気に金つぎこんだほうがいいんだろうな
122 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 12:46:58.89 ] >>118 誰がお前の事って言った? 日本語をちゃんと読んでレスしなよ
123 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 13:11:02.53 ] オペレーターのオーバーロードってなんかまずいの? 小規模なプログラミングやっててよく使うんだが
124 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 13:15:39.99 ] 濫用すると分かりにくいコードができる。
125 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 13:35:31.11 ] C++の方でやってるね 可読性の問題かあ 自分一人でやる分には問題ないかな
126 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 14:43:24.80 ] >>122 自分のことなんて思ってないよ なんで俺のことっておもったの? (w
127 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 15:01:17.97 ] 俺、数学とか好きだから 例えば行列クラスとか作ったりした時(C#だけど) やっぱ、operatorは欲しいよ。 いちいちC = A.Multiplicat(B)って記述より C = A * B のほうがすっきりする ようは、実装するときにちゃんとしたコードさえ かけば、operatorは良いと思う。
128 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 15:38:48.84 ] C = Mul(A, B) Mul(inA, inB, out) 普通こう書くだろ行列でメンバがprivateなんてまずありえないしメンバ関数である必要ない
129 名前:127 mailto:sage [2011/12/18(日) 16:25:16.01 ] >>128 いいや、メンバは全部privateです。
130 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 17:02:24.99 ] C++さんも中置きにコだわらず Lispさんのユニークな演算子を定義できると言っても過言ではありません(要は関数なんだけどね みたいな書式を併用できればよかったのに
131 名前:デフォルトの名無しさん [2011/12/18(日) 17:35:46.82 ] 個別の要素ににアクセス出来ない行列とかワロス
132 名前:デフォルトの名無しさん [2011/12/18(日) 20:55:57.56 ] わしは、晶子が好きじゃ!
133 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 23:08:11.88 ] >>128 >C = Mul(A, B) ダサすぎてありえないw
134 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 01:23:33.65 ] イテレータやスマートポインタがポインタと同じように扱えるという 一点だけでも演算子オーバーロードの価値がある。
135 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 08:26:00.25 ] >>134 このへんはC++ならではだよなぁ cout << なんかは賛否両論ありそうだけど
136 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 15:16:33.62 ] Visual c++の環境をEclipseから使うことってできるかな? JavaやってみるためにEclipse使ってみたら、エディタタブの右のスクロールバーの右の キーワードのハイライトがわかりやすくて感動した。
137 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 15:21:54.95 ] Productivity Power Tools入れれば同じようなの出るよ
138 名前:127 mailto:sage [2011/12/19(月) 16:43:55.72 ] >>131 C#って書いたろ? そんなもんインデクサや、行又は列の長さくらいは public にしてるにきまってるだろ。
139 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 17:23:14.54 ] >>136 EcripseつかうならMinGWのが情報多いんでね?
140 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 22:50:04.94 ] operatorは初心者の俺には邪険な存在でしかない 1度目は適当に読み流してどんなもんか確認しただけだからかもしれなけど ちゃんと実行確認しながら2度目で理解出来ればいいんだけど
141 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 00:42:24.58 ] 朝日新聞は一時期300人のネット工作員をかかえ、反日工作していた。 捕まった編集者は49歳ですが、こんなカスでも1500万円の年収がもらえるんですよ。 >>866 14時以降に何が起きたんだ >>866 Domain Information: [ドメイン情報] a. [ドメイン名] ASAHI-NP.CO.JP e. [そしきめい] かぶしきがいしゃ あさひしんぶんしゃ f. [組織名] 株式会社 朝日新聞社 これが規制されたからじゃねw −「朝日新聞社は、とある思想やパラダイムに日本の世論を誘導する見返りに、中国から大量の資金を貰っている。」− これはおそらく週刊誌さえ書けない。 「失語症躁鬱ニートは氏ねよ」【ネット】朝日新聞社員(49)ネットで荒らし行為、会社ごとアクセス規制へ
142 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 01:50:40.47 ] >>140 Cのポインタなんかもそうだけど、最初は「そーゆーのがあるんだな」だけで良いと思うのだ operatorなんて、一部以外はそんな多用するもんでもない気がするし。
143 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 17:40:25.85 ] >>140 operator、始めは何この意味不明、と思ってたけど、あると確かに便利なものはあるんだ。 例えば、 ポインタを要素に含んだ構造体を複製する際、ポインタの先まで複製するってのを a = b って出来る。 a.clone(b) とかでいいんだけどね。 あと、他人が書いたコードのoperatorオーバライドは意味不明。確かに要らないと感じたりもする。
144 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 17:57:08.78 ] int型が何ビットになるか決めるのはコンパイラですよね? オプションで指定したり、クロスプラットフォームだったりするから。 ja.wikipedia.org/wiki/64%E3%83%93%E3%83%83%E3%83%88 を見ると、OS単位で決まってるみたいな書き方があると感じているのだけど、 OSの層とコンパイラの層があるのかな?
145 名前:デフォルトの名無しさん [2011/12/20(火) 18:20:08.40 ] VC10で以下のヘッダーファイルはコンパイルが通るのですが、プリコンパイル済みヘッダーにしようとすると二重定義だと怒られます 回避策はないでしょうか。あるいはどこが記述が間違っているのでしょうか error LNK2005: "public: static void __cdecl Hoge<int>::FuncA(void)" (?FuncA@?$Hoge@H@@SAXXZ) は既に stdafx.obj で定義されています。 error LNK2005: "public: void __thiscall Hoge<int>::FuncB(void)" (?FuncB@?$Hoge@H@@QAEXXZ) は既に stdafx.obj で定義されています。 // Hoge.h #pragma once template<typename T> struct Hoge { static void FuncA(); void FuncB(); }; template<> void Hoge<int>::FuncA(){} template<> void Hoge<int>::FuncB(){}
146 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 18:38:08.84 ] >>145 template<> void Hoge<int>::FuncA(){} template<> void Hoge<int>::FuncB(){} これは実装ファイルに1箇所だけに書かなきゃだめ リンクエラーになる
147 名前:デフォルトの名無しさん [2011/12/20(火) 19:22:16.84 ] >>146 ありがとうございます ただ、なんとなく inline つけたら問題なく動いちゃいました インライン関数はプリコンパイルしないようになっているのだろうか
148 名前:デフォルトの名無しさん [2011/12/20(火) 21:11:08.53 ] 定数構造体配列の添字をenumとして定義するのは、どうするのがスマートでしょう? typedef struct { BYTE value; const char* name; } STRCT; const STRCT const_array[] = { {1, "one"}, {3, "three"}, {5, "five"}, }; ↑ これらを一緒に定義したい(ONEと1と"one"を1行で定義したい) ↓ enum { ONE, THREE, FIVE }; マクロを駆使して、同じファイルを2回#includeとかしたら出来るんですが、もっといい方法は無いものかと。 Cで無理なら、C++でも可です。
149 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 21:17:50.19 ] struct S { static unsigned int value; std::string name; S(unsigned int v, std::string n) : value(v), name(n) { } }; typedef S const SC; static SC ONE(1, "one"), THREE(3, "three"), FIVE(5, "five");
150 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 21:18:44.16 ] × struct S { static unsigned int value; ↓ ○ struct S { unsigned int value;
151 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 21:46:35.05 ] >>144 整数型のサイズを決めるのはコンパイラのみ。 ただし、コンパイラの設計がターゲットOSのAPIなどに 影響を受ける場合があるということ。
152 名前:デフォルトの名無しさん [2011/12/20(火) 22:28:01.19 ] >>149-150 ありがとうございます >S(unsigned int v, std::string n) : value(v), name(n) { } この文法、初めて見たんですが何という名前の機能になりますか? 定義してコンパイルは通ったんですが、要素にアクセスする方法が分からなくて…
153 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 23:40:38.22 ] >>152 ONE.value, ONE.name
154 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 01:24:23.57 ] >>147 inline 関数は定義がいっぱいあってもその内容が完全に同じならおk
155 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 01:28:28.64 ] >>148 こんな感じでがんばれ。 d.hatena.ne.jp/Cryolite/20110920#p1
156 名前:デフォルトの名無しさん [2011/12/21(水) 02:27:39.19 ] おねがいします。 引数が SIZEの関数があったので func(SIZE(CX,CY)); と記述したらエラーとなりました。 SIZE size={CX,CY}; func(size); とするとOKでした。 変数を作らずに関数に値を渡すにはどう記述すればいいのでしょうか。
157 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 02:31:33.13 ] >>156 コンパイラがC99またはC++11対応ならSIZE{CX,CY}でいけるんじゃないかな。
158 名前:デフォルトの名無しさん [2011/12/21(水) 03:42:27.32 ] >>153 ありがとう。動作しました。 こんな文法があるとは。 ただ、これらを配列としてアクセスしたかったりします。 printf(const_array[ONE].name); のように。 >>149 の原理が分かってないので、応用できないというか… なにか参考URLはないでしょうか 構造体でググっても見つかりません…
159 名前:2011新作展示 [2011/12/21(水) 03:44:15.42 ] 2011新作展示 N級最高等級時計大量入荷 新品種類がそろっています。 baidurl.cn/4ye baidurl.cn/555 baidurl.cn/556 baidurl.cn/557 baidurl.cn/559
160 名前:144 mailto:sage [2011/12/21(水) 06:52:08.37 ] >>151 ありがとう
161 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 08:52:44.73 ] >>158 bool operator < (S const & a, S const & b) { return a.value < b.value; } std::map<S, S> make_array(void) { std::map<S, S> array; array.insert(ONE, ONE); array.insert(THREE, THREE); attay.insert(FIVE, FIVE); return array; } static std::map<S, S> const const_array = make_array(); int main(void) { std::cout << const_array[ONE].value << std::endl; std::cout << const_array[ONE].name << std::endl; }
162 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 23:11:15.45 ] 解散コールは1:55から 12.19 街頭演説、国民の怒りと危機管理への不安 www.youtube.com/watch?v=6PQf9GvXWB0 国民に罵声を浴びせられ駅前交番に避難するテレビアカヒの取材班 12/19正午 新橋駅前 blog-imgs-44.fc2.com/d/e/l/deliciousicecoffee/111219_124643_ed.jpg ,:' .l .::;',. :::;/..://:: /,':/ ', l、 .i ヽ . ,' ..::| .::;',' :;:','フ'7フ''7/ ',.ト',_|, , ',.', ,' .::::::!'''l/!:;'/ /'゙ / '! ゙;:|:、.|、| 'l . ,'. .:::::::{ l'.l/ 、_ _,. 'l/',|.';| l :::::::::::';、ヾ  ̄ `‐-‐'/! ';. ' . ! :::::::::::/ `‐、 ゝ |'゙ | | ::::::::/ \ 、_, _.,.,_ ノ::: ! 野田政権が早く終わりますように |::::/. _rl`': 、_ ///;ト,゙;:::::./ .. `´ /\\ `i;┬:////゙l゙l ヾ/ ,.:く::::::::`:、\ 〉l゙:l / !.| . /:.:.:.:\:.:.:.:.`:、ソ/:.:| | | 19日の報道ステーション /.:.:.:.:.:.:.:.:.:\:.:.:.:У:.:;l livedoor.blogimg.jp/kingcurtis/imgs/e/d/ed2dbc66.jpg
163 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 06:29:56.60 ] class A{ int hoge(){} } と書いてもコンパイルエラーにならないが、 class A{ int hoge(); } int A::hoge(){} と書くと、「値を返さなければいけません」のようなコンパイルエラーになるのは何故ですか? 両者は同じではないですか?
164 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 06:37:16.94 ] ttp://codepad.org/NM2qcsIg 文句言われるけど
165 名前:163 mailto:sage [2011/12/22(木) 07:40:15.39 ] >>164 ありがとうございます。 気になったらとりあえずcodepadに行ってみるのがいい感じですね。 mingwだと良く見ると警告が出ていて、 ideon、Visual C++だと警告すら出ませんでした。 警告に対する設定の違い見たいですね。。。
166 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 07:41:49.56 ] 前者は呼ばれない関数だからだろ。呼べばエラーになるよ。
167 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 07:49:11.02 ] #include <iostream> class A{ private: int ababababa(void) { std::cout << "hoge"; return 1; } }; int main() { A a; a.ababababa(); std::cout << "foo"; } 単体試験をしたいのですが、ababababa(void)がprivateであるためアクセスできません。 クラスを変更せずに試験を行うことは出来ませんか? クラスの内部にfriendを書く以外の方法があれば教えて欲しいです。
168 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 07:50:39.96 ] #define private public
169 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 08:48:37.01 ] 名前の違う、自由に改変可能な、同じ内容のクラスを作って 対象のクラスのポインタをそのクラスのポインタにキャストする
170 名前:167 mailto:sage [2011/12/22(木) 09:41:48.72 ] >#define private public これは…。 恐ろしいものを知りました。 >名前の違う、自由に改変可能な、同じ内容のクラスを作って ちょっと労力が大きいかも。 おふたかた、ありがとうございます。 因みに、プロの方ですか?現場でもこういったことをするのですか?
171 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 09:43:46.66 ] >前者は呼ばれない関数だからだろ。呼べばエラーになるよ。 ! 呼ばれなければコンパイルされないのか…。 ありがとうございます。
172 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 09:47:35.11 ] 呼ばれない関数でも普通はコンパイルされるよ。
173 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 10:47:13.94 ] >>168 背筋が凍った
174 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 11:56:21.38 ] 実際>>168 がまかり通ってるような現場ってあるの?
175 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 12:18:10.65 ] クラスにfriendを追加したりする変更権限のある人が テストをした方が良いと思うんだが。