09/06/11 02:00:41
class Hoge
{
int a
}
というクラスがあったとき
Hogeのインスタンス同士の比較をメンバ変数aの大小で行う場合
演算子をオーバーロードしたほうが良いのか
int GetA()という関数を比較するのが良いでしょうか?
またHogeインスタンスとintを比較することも考えてますがこういう場合はどうでしょうか?
329:デフォルトの名無しさん
09/06/11 02:02:44
>>326
いやそれであっている。
うまくいかないならほかに原因がある。
330:デフォルトの名無しさん
09/06/11 02:37:59
>>328
Hoge同士の比較方法がそれ以外にあり得ないなら演算子オーバーロードでいいんじゃね?
331:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/06/11 03:10:02
コンパイラ何使ってる?
あと、どんな結果が出たのかも書いて欲しいかなかな。
333:デフォルトの名無しさん
09/06/11 03:35:46
hoge{1,2,3,4,5} ←なにこれ?
334:デフォルトの名無しさん
09/06/11 08:03:30
新しいコンストラクタの呼び方
335:デフォルトの名無しさん
09/06/11 09:35:48
デタラメ書くなカス
336:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/06/11 19:58:37
gcc4.3以上なら通るな
initializer_listだろ
338:デフォルトの名無しさん
09/06/11 20:57:57
C99の機能をC++に持ち込むなクズ
339:デフォルトの名無しさん
09/06/11 21:22:27
C++0xではC99の一部機能が採用されるよ。
委員会の人たちにクズと言わないと意味ない。
340:デフォルトの名無しさん
09/06/11 21:37:51
restrictとか_Complexとか可変長配列みたいな
本当にしょうもない物は入らないから大丈夫だと思うけどね
341:デフォルトの名無しさん
09/06/11 21:53:38
>>339
ここはC++0xのスレじゃないよ
342:デフォルトの名無しさん
09/06/11 23:20:40
>>340
特に、restrictはC++89のときに否決された過去があるから、
今回も入れられるわけないw
343:デフォルトの名無しさん
09/06/11 23:22:51
restrictは入れると一つだけ利点があるんだよなあ
FORTRAN並みに配列演算が高速化できる可能性がある
科学技術計算にはFORTRANを、と言わなくて済むようになるんだがな
それ以外には取り立てて利点はない
344:デフォルトの名無しさん
09/06/12 06:13:12
>>341
ここがC++0xのスレかどうかなんて、>>338-339の流れには関係ないよ。
345:デフォルトの名無しさん
09/06/12 09:08:43
>>344
スレ違いだクズ
346:デフォルトの名無しさん
09/06/12 09:24:45
いいえ。
347:デフォルトの名無しさん
09/06/12 09:52:32
いいえ。
348:デフォルトの名無しさん
09/06/12 09:56:38
iccでもオプション指定さえすればrestrictが使えるんだよね。
メモリのアクセスパターンががらっと変わる可能性があるから入れて欲しいけどねぇ。