class A
{
public:
// void func( const int ) const {} // если заменить на это - будет компилироватьсяvoid func( constint ) {}
// void func( const int& ) const {} // если заменить на это - будет компилироватьсяvoid func( constint& ) {}
};
voidOnStart()
{
A a;
a.func(0);
int i1 = 0;
a.func(i1);
constint i2 = 0;
a.func(i2); // 'func' - ambiguous call to overloaded function with the same parameters
}
CopySpread()関数は、対応するチャート 期間についてどのようなスプレッド値を生成するのですか?
平均値なのか、最小値なのか、最大値なのか、関数のヘルプにも何も書かれていないので、よくわからない。
CopySpread()関数は、対応するチャート 期間についてどのようなスプレッド値を生成するのですか?
平均値なのか、最小値なのか、最大値なのか、関数のヘルプにも何も書かれていないので、よくわからない。
どこで、アカウントで、またはテスターで
同じパラメータを持つオーバーロードされた関数の あいまいな呼び出し
これは誤解なのかバグなのか?
私の勘違いなのか、バグなのか。
同じパラメータを持つオーバーロードされた関数のあいまいな呼び出し
これは誤解なのかバグなのか?
誤解がある。
まあ、それはそれとして、答え合わせをしました。))))
私の理解では、このコードはどちらの場合でも同じ動作をするはずです。
私もそう思っています。
誤解がある。
まあ、それはそれとして、答えました。))))
あのくだらないソースコードの例は、作るのに時間がかかりましたね。作っているうちにユーモアのセンスがなくなりそうでした。
このダムソースの例では、作成に時間がかかりました。作っているうちにユーモアのセンスがなくなりそうでした。
(苦笑) わかりました。)
3つの呼び出しのバージョンすべてにおいて、引数が値で渡されるのか参照で渡されるのか理解できないため、コンパイラはどの関数を呼び出すか選択できない。また、const修飾子はそれらをオーバーロードします。void f(){}とvoid f() const {}は異なる関数です。この例では、メソッドの1つをconstとして宣言した場合、不確実性はなくなります。コンパイラは、呼び出しが定数オブジェクトから行われたかどうかによって、目的のメソッドを選択します(この例では引数の型は重要ではありません)。
あなたのオブジェクトaは定数ではないので、constなしのメソッドは3回とも呼ばれることになります。オブジェクトを定数宣言(A const a;)すると、定数メソッドが 呼び出されます。
どのような出力になるかをご覧ください。
よかったです。)
この3種類の呼び出しでは、引数が値で渡されるのか参照で渡さ れるのかが分からないため、コンパイラはどの関数を呼び出すか選択することができないのです。また、const修飾子はそれらをオーバーロードします。void f(){}とvoid f() const {}は異なる関数です。この例では、メソッドの1つをconstとして宣言した場合、不確実性はなくなります。コンパイラは、呼び出しが定数オブジェクトから行われたかどうかによって、目的のメソッドを選択します(この例では引数の型は重要ではありません)。
あなたのオブジェクトaは定数ではないので、constなしのメソッドは3回とも呼ばれることになります。オブジェクトを定数として宣言した場合(A const a;)、定数メソッドが 呼び出されることになります。
それ以前の通話はすべて問題なく通過します。
何をプリントアウトするか見てみましょう。
これは別のスレッドからです。