私は答えをNOを得ました!値による受け渡しと参照による受け渡しは、呼び出し元と同じように見えるためです。
ただし、以下のコードは正しくコンパイルされます
class A {
public:
void f(int i) {}
void f(int& i) {}
};
しかし、使用しようとするとコンパイルエラーが発生します。
int main () {
A a;
int i = 9;
int& j = i;
a.f(1);
a.f(i);
a.f(j);
return 0;
}
使用されることを知らなくても、コンパイラが無効にしないのはなぜですか?