我只是偶然发现了这个奇怪的语法。实际上,可以使用运算符-> on数组。
struct Foo
{
void bar() { }
};
int main()
{
Foo foo[3] = { Foo(), Foo(), Foo() };
foo->bar();
}我以为操作符->只用于指向对象的指针,而在这段代码中我没有看到任何指针。即使有指针,它们也会因为临时的愚人而悬挂指针。是什么让这成为可能?
发布于 2014-09-23 06:41:22
我以为操作符->只用于指向对象的指针,而在这段代码中我没有看到任何指针。
数组在表达式中使用时会衰减为指针,就像您已经使用的那样。
即使有指针,它们也会因为临时的愚人而悬挂指针。是什么让这成为可能?
线
Foo foo[3] = { Foo(), Foo(), Foo() }用三个有效的对象填充foo,而不是临时对象。
https://stackoverflow.com/questions/25988412
复制相似问题