我今天遇到了一个奇怪的情况,我需要一个不隐式转换值的函数.
经过一些谷歌搜索后,我发现了这个http://www.devx.com/cplus/10MinuteSolution/37078/1954
但我认为对我想要阻止的其他类型使用函数重载有点愚蠢,所以我做了这个.
void function(int& ints_only_please){}
int main()
{
char a=0;
int b=0;
function(a);
function(b);
}
我向朋友展示了代码,他建议我在int之前添加const,这样变量就不可编辑了,但是当我开始编译时很好但不应该这样,看下面看看我的意思
void function(const int& ints_only_please){}
int main()
{
char a=0;
int b=0;
function(a); //Compiler should stop here but it doesn't with const int
function(b);
}
有人知道为什么吗?