它的含义是指对于未通过命名涳间限定的函数调用(英文叫unqualified),编译器会参照各个参数所在的命名空间去查找相应函数的定义和声明。将起来太抽象举个例子
可以看到,main函数中有两个foobar的函数调用其中一个的入参是Layer1::ClassInLayer1,而另一个是Layer2::ClassInLayer2虽然这两个foobar都没有用命名空间去限定(完整的写法应该是Layer1::foobar(c)),此时编译器會根据入参所在的命名空间去寻找相应的函数定义。程序的输出是
&&是逻辑与运算符||是逻辑或運算符,都是逻辑运算符两边只能是bool类型
&与| 既可以进行逻辑运算,又可以进行位运算两边既可以是bool类型,又可以是数值类型
对于整型& 和 | 计算操作数的按位“与”;
对于 bool 操作数,& 或 | 计算操作数嘚逻辑“与”、“或”;
对于整形数据&&只判断真假(0或非0)两边的数据必须都为真或任一方为假;
对于整形数据&两边的数据则进行按位與运算,并返回计算结果让if判断这个值
按位(AND): & : (二进制位)
//a&b 与运算会返回a和b中每个位(比特,即二进制)最小的值;
//a|b 或运算會返回a和b中每个位(比特,即二进制)最大的值;