[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 06/02 12:37 / Filesize : 89 KB / Number-of Response : 349
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

【初心者歓迎】C/C++室 Ver.66【環境依存OK】



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が使えるんだよね。
メモリのアクセスパターンががらっと変わる可能性があるから入れて欲しいけどねぇ。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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