Я получил ответ НЕТ! Поскольку передача по значению и передача по ссылке выглядит идентичной вызывающей.Можем ли мы перегрузить функцию, основанную только на том, является ли параметр значением или ссылкой?
Однако приведенный ниже код компилирует прямо
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;
}
Почему компилятор не отключает его, даже не зная, что он будет использоваться?
Это поможет, если вы показали фактическую ошибку компилятора и номер строки. –
dupe: http://stackoverflow.com/questions/930323/f5-and-int-x-fx-to-call-different-functions –