- 1 名前:デフォルトの名無しさん mailto:sage [2009/05/28(木) 01:08:48 ]
- エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.65【環境依存OK】 pc12.2ch.net/test/read.cgi/tech/1239326399/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm ◆ソースのインデントについて 半角やTABでのインデントはスレに貼ると無くなります。 そのため、アップローダーに上げるのが最も良いですが、 直接貼るのであれば、全角空白か に置換しておくことをお勧めします。
- 326 名前:デフォルトの名無しさん [2009/06/11(木) 01:48:37 ]
- C++でクラスの配列を作ったのですが、配列の要素数をどうやって求めればいいでしょうか。
class hoge { public: int a,b,c,d,e; void func1(); void func2(); }; hoge h[]={ {1,2,3,4,5}, {1,2,3,4,5}, {1,2,3,4,5}, {1,2,3,4,5}, }; このとき sizeof(h)/sizeof(hoge) とやっても正しく出てくれません。
- 327 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 01:53:50 ]
- template<X>unsigned is(hoge[X]&){return X;}
kazu=is(h);
- 328 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 02:00:41 ]
- class Hoge
{ int a } というクラスがあったとき Hogeのインスタンス同士の比較をメンバ変数aの大小で行う場合 演算子をオーバーロードしたほうが良いのか int GetA()という関数を比較するのが良いでしょうか? またHogeインスタンスとintを比較することも考えてますがこういう場合はどうでしょうか?
- 329 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 02:02:44 ]
- >>326
いやそれであっている。 うまくいかないならほかに原因がある。
- 330 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 02:37:59 ]
- >>328
Hoge同士の比較方法がそれ以外にあり得ないなら演算子オーバーロードでいいんじゃね?
- 331 名前:デフォルトの名無しさん [2009/06/11(木) 02:50:23 ]
- >>329
すいません。 クラス配列を作るとき、 hoge h[]={ hoge{1,2,3,4,5}, hoge{1,2,3,4,5}, hoge{1,2,3,4,5}, hoge{1,2,3,4,5}, }; と書くようにしたら先のやり方で配列の要素数が取れました。 環境はVS2008なのですが、最初の書き方ではだめだったでしょうか?
- 332 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 03:10:02 ]
- コンパイラ何使ってる?
あと、どんな結果が出たのかも書いて欲しいかなかな。
- 333 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 03:35:46 ]
- hoge{1,2,3,4,5} ←なにこれ?
- 334 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 08:03:30 ]
- 新しいコンストラクタの呼び方
- 335 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 09:35:48 ]
- デタラメ書くなカス
- 336 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 15:17:42 ]
- >>331
自分もVS2008だけど、これはエラーなくコンパイルできて4と出力される。むしろ>>331がコンパイルエラーになる。 #include <iostream> class hoge { public: int a,b,c,d,e; void func1(); void func2(); }; hoge h[]={ {1,2,3,4,5}, {1,2,3,4,5}, {1,2,3,4,5}, {1,2,3,4,5}, }; int main() { std::cout << sizeof(h)/sizeof(hoge) << std::endl; }
- 337 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 19:58:37 ]
- gcc4.3以上なら通るな
initializer_listだろ
- 338 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 20:57:57 ]
- C99の機能をC++に持ち込むなクズ
- 339 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 21:22:27 ]
- C++0xではC99の一部機能が採用されるよ。
委員会の人たちにクズと言わないと意味ない。
- 340 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 21:37:51 ]
- restrictとか_Complexとか可変長配列みたいな
本当にしょうもない物は入らないから大丈夫だと思うけどね
- 341 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 21:53:38 ]
- >>339
ここはC++0xのスレじゃないよ
- 342 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 23:20:40 ]
- >>340
特に、restrictはC++89のときに否決された過去があるから、 今回も入れられるわけないw
- 343 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 23:22:51 ]
- restrictは入れると一つだけ利点があるんだよなあ
FORTRAN並みに配列演算が高速化できる可能性がある 科学技術計算にはFORTRANを、と言わなくて済むようになるんだがな それ以外には取り立てて利点はない
- 344 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 06:13:12 ]
- >>341
ここがC++0xのスレかどうかなんて、>>338-339の流れには関係ないよ。
- 345 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 09:08:43 ]
- >>344
スレ違いだクズ
- 346 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 09:24:45 ]
- いいえ。
- 347 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 09:52:32 ]
- いいえ。
- 348 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 09:56:38 ]
- iccでもオプション指定さえすればrestrictが使えるんだよね。
メモリのアクセスパターンががらっと変わる可能性があるから入れて欲しいけどねぇ。
|

|