关于C++代码emptyApartments函数第4行调用函数的技术问询
分析代码中
apt[i] && ~apt[i]调用的Apartment类函数 拆解sum += apt[i] && ~apt[i];这一行的函数调用逻辑:
apt[i]部分:由于处于逻辑与&&的操作数位置,编译器需要将const Apartment对象转换为布尔类型,因此会调用Apartment类的operator bool()const转换运算符。~apt[i]部分:~是单目运算符,Apartment类中重载了const版本的bool operator~()const,这里直接调用该重载运算符,返回布尔值。
逻辑与&&运算的结果是布尔值,加到int类型的sum时会自动隐式转换为整数(true对应1,false对应0),这一步不会调用Apartment类的任何函数。
内容的提问来源于stack exchange,提问作者cine j
相关产品推荐
相关产品推荐

