2016-12-07 1 views
0

私は、一般にクラスの外で宣言され、プログラムで繰り返し使用されるいくつかの機能を含んでいるヘルパー関数と呼ばれる関数があると述べました。ヘルパー関数宣言はクラス外ですか?

彼らは、==と!=は、クラスの比較に使用されるヘルパー関数のタイプです。

なぜクラス外に宣言されていますか?私はアイデアを得ていないのですか?

+4

'operator =='をメンバ関数として使用すると、クラスオブジェクト* always *は演算子の左側になければなりません。 –

答えて

2

私があなたを正しく理解していれば、あなたは友人の機能について話しています。演算子==と演算子!=はクラス本体の外に書くことができ、それらの目的はあなたのクラスの==と!=演算子をオーバーロードして、if/whileなどの文でそれらを比較することができます。例:

これは、あなたが意図したものではない場合、どのクラスでも使用できる従来の非メンバー関数である可能性があります。これは、あなたが言ったように、特定のクラスに束縛されていないプログラムの複数の部分で使用される関数にとって有益です。例:

// simple function returnig average of given numbers from vector 
int average(const std::vector<int>& vec) { 
    int sum = 0; 
    for (int i : vec) 
     sum += i; 
    return sum/vec.size(); 
} 
関連する問題