关于if条件表达式的用法?
请教这个if语句中的条件表达示什么意思:
#include <iostream>
#include "Sales_item.h "
int main()
{
Sales_item trans1, trans2;
std :: cin > > trans1 > > trans2;
if (trans1.same_isbn(trans2)) //这里不知道什么意思了,这个表达式的结果会是bool型吗?
std :: cout < < trans1 + trans2 < < std :: endl;
else
std :: cout < < "The two transactions have different ISBN. "
< < std :: endl;
system( "pause ");
return 0;
}
这是C++ primer里第一章里的1.22习题。我看了习题解答后知道是将两个对象做比较,可是还是不明白其中的用法,还有一句:
if (std :: cin > > total) //这句也不明白
惭愧,才开始学习C++,还请前辈们不吝赐教,尽量说的通俗一点!谢谢!
[解决办法]
if判断实际上就是判断括号内的结果,如果成立的话,则执行if体内的语句。显然你的分析是正确的。当然,如果你定义 int a = 1;
if(a){...}
编译器也能通过编译,同时执行括号内的语句。当然,是不推荐这样使用的。下面的是常见用法:
bool a = true;
if(a){...}
当然,如果定义bool foo(int x){...};
也可以判断if(foo(1)){...};
[解决办法]
就是从trans1对象上调用Sales_item类的成员函数same_isbn,而same_isbn的返回值是bool型的,当然完全可以放在if表达式中了。