学习C++primer 第19天 之 小问题
1.书上有这么一句话:“候选函数是与被调函数同名的函数,并且在调用点上,它的声明可见。”
问下:“何为调用点?顺便举个例子看看不在调用点上的。”
问下:“何为声明可见?顺便举个例子看看声明不可见的。”
2. (1)void f(double,double=3.14);
(2)void f(int,int);
现在像有这么一个函数调用: f(42,2.56);
那么(1)和(2)都可以,这里会产生二义性。所以要强制一下:如下
(3)f(static_cast<double>(42),2.56);
(4)f(42,static_cast<int>(2.56));
但是,这样强制后,还是分不出来啊。如果选(3)的结果和(4)的结果不一样啊。。。怎么办...
3。书上有这么一句话:“整数对象即使具有与枚举元素相同的值也不能用于调用期望获得枚举类型实参的函数!”
为什么?
enum Tokens(INLINE =128,VIRTUAL=129);
void ff(Tokens);
int main(){
ff(128)}
这里的ff(128)传递的是一个整形,他为什么就不能和函数Tokens匹配呢?Tokens里需要传递的也是整形参数啊!!..
4.最后,我总是搞不清楚 * 这个符号再表达式中的意义。比如它有时候再名字前面,有时候再后面什么的。。不是太明白。谁有些这个资料。最好每总情况都有。
小弟感谢!!