我对在函数参数中使用别名有疑问。这是我的问题。
让我们考虑这个函数定义
void thisIsSparta(int& number){
...
}
在调用时,它与以下代码完美配合:
int king = 1;
thisIsSparta(king);
但是当我尝试这个时出现不匹配错误:
thisIsSparta(1);
我可以很容易地猜到错误的发生,因为根本没有别名变量,因此错误。但是,我不希望程序员担心只使用这两种方法中的一种,第二个函数调用应该可以正常工作!
我看到的唯一解决方案是创建另一个没有别名参数的函数,除了第一个:
void thisIsSparta(int number){
}
但这会导致可怕的代码重复,我不是这个的超级粉丝。
此外,当我使用变量时,程序可以决定使用第二个定义而不是前者。然后我失去了别名的兴趣,其目的是避免变量复制。
有没有人可以解决我的问题?事实上,这是一个简化的例子,实际上我在这个函数的参数中有一个泛型类型,它可以任意大。这就是为什么我想使用别名来避免复制。