Как уже ответили, тип возврата не учитывается.Итак, я вижу 3 возможных решения:
1 делает его частью сигнатуры функции:
class B {
public:
void Get( int *&refptr );
void Get( int &refval ) const;
};
int main(){
B b;
int refval2 = 0;
b.Get( refval2 );
int* pval2 = nullptr;
b.Get( pval2 );
}
, но это приводит к довольно уродливому коду, поэтому вам лучше использовать метод 2 или 3 -
2 использовать разные имена функций, это довольно очевидно
3 использовать игнорируемый параметр:
class B {
public:
int *Get( nullptr_t );
const int &Get() const;
};
int main(){
B b;
const int &refval2 = b.Get();
int* pval2 = b.Get( nullptr );
}