struct A {
int i;
};
struct B {
A a;
operator A*() { return &a; }
};
int main(int argc, char *argv[])
{
B b;
return b->i;
}
g++
報告error: base operand of ‘->’ has non-pointer type ‘B’
爲什麼這個類不會隱式轉換爲指針?
爲什麼?我已經想出瞭如何規避這個問題(使用operator->
),但我不明白爲什麼隱式轉換不會發生。