if (结构体1&&结构体2)是什么意思??结构体只是声明了一下,没有赋值
最佳答案
回答者:网友
你这个说起来比较复杂
首先你这个语句应该是编译不过去的,if接受bool类型值氧,不接受你自己随便写的类型。
你的结构必须实现了operator bool()商盟星带宣合春纪式;即你的结构必须支持到bool的隐式类型转换。
如果没有实现operator bo轻从远曾希日选应温革ol(),则要实现可以掌案城沙写更鸡转为bool的实现,
例如 op领新erator void*(),operator int()等等。
如果你实现了以上转换之一,那么留均请条区析板就是一般的逻辑判土阻衣强注断了。
例如
#include <cstdlib>
#include <iostream>
struct Foo
{
int a;
operator bool()
{
return a;
}
};
int main()
{
using namespace std;
Foo foo1;
Foo foo2 = {0};
cout << boolalpha << "foo1: " << foo1
<< ", foo2: " << foo2 << endl;
if (foo1&&foo2)
cout << "Should not be output." << endl;
system("pause");
}