2011-09-06 9 views
0

私は自分のデータ構造体クラスのプログラミング割り当てに取り組んでいます。私たちは統計学者クラスの作成に取り組んでいます。私たちが持っていなければならない機能の1つは、統計的リスト(カウント、合計、最小、最大、平均)をとり、それに特定の整数を掛けることです。以下は、私が今まで特定の機能のために持っているものです。しかし、私はそれがworngように見えるようにどこに行くのか分からない。統計的クラスの乗算器の実装

statistician operator *(double scale, const statistician& s) 
{ 
    scale*s; 
    return s; 
} 

添付ファイルは、私が何をしようとしているかを説明する.hファイルです。私はこの.hファイルの実装ファイルを書いていますし、任意のヘルプ

+0

これまでのところ、問題が尋ねたことは実行していません。これまでのところ、あなたは公の関数を呼び出すだけで友人クラスである必要はありません。各項目に操作が必要な項目がリストにあります。あなたはオペレータのリストから各リストアイテムにアクセスする必要があるようです。 – ccozad

+1

あなたの質問を修正してください。最初のスケール*は何も効果がありません。また、あなたは本当に質問をしていません。具体的に何をすべきか? statisticianはコード固有のクラスです。それは何を表わすはずですか? –

+0

この仕様はあまりにも漠然としています。実際の問題の内容を推測することはできますが、もっとわかりやすく教えていただければもっと助かります。 –

答えて

1

クラス統計のコピーを作成しようとしていますが、縮尺でスケーリングしています。何かのように

statistician operator *(double scale, const statistician& s) 
{ 
    statistician result(s); 
    result.total *= scale; 
    result.tinyest *= scale; 
    result.largest *= scale; 
    return result; 
} 

メンバ関数scaleByは適切なメンバ変数に適切な縮尺を掛けます。

あなたはカウントを縮尺しません。あなたが統計学のクラスに分散のようなものを持っていたなら、おそらくそれをスケールの二乗で乗算するでしょう。

+0

ありがとう!説明をありがとう – Sean

+0

私は宿題の質問のように見えたので、すべての詳細をあきらめようとしていませんでした。 :) –

0
用の.hファイルのコメント

http://www.cs.colorado.edu/%7Emain/projects/stats.h

おかげで定義されている統計演算子*を作成する方法を把握しようとしています

演算子をクラス内またはクラス外に実装しようとしていますか? Operators in C++を読んで、決定してください!

+0

私は何をしようとしているのかをもっと詳しく説明できるよう、私の説明を更新しました。私は初心者であり、まだ十分に基礎を築いていません。 – Sean

2

あなたが書いたコードはコンパイルされているように見えますが、コード自体が呼び出されるため、無限ループが発生します。 scale*sは、現在定義されている機能であるoperator*(scale, s)のショートカットです。コンパイラのために、scale*s行をベビーステップに置き換える必要があります。それが定義されていたら、あなたは、単にあなたがそうのようなdouble*statisticianようにプログラムした内容行うことができますstatistician*doubleを、したいことがあり、

statistician operator *(double scale, const statistician& s) 
{ 
    statistician result 
    result.count = /*???*/; 
    result.total = /*???*/; 
    /*etc*/; 
    return result; 
} 

:それは次のようになります。

statistician operator *(const statistician& s, double scale) 
{ 
    return operator *(scale, s); 
} 
関連する問題