读书人

请问一个关于对象数组和指针的有关问题

发布时间: 2012-03-22 17:43:57 作者: rapoo

请教一个关于对象数组和指针的问题
//请教一个关于对象数组和指针的问题

Class A
{
public:
f();
private:
int n;
}

A a[i]; //定义对象数组
A *p; //定义指向A类对象的指针
p=a;

=======================================
为什么 (p+i-1)->f() 和 a[i-1].f() 等价

但 *(p+i-1).f() 和 a[i-1].f() 不等价。

编译错误提示error C2228: left of '.f' must have class/struct/union type

[解决办法]
需要把对象用括号括起来,编译器整不清*的作用范围
(*(p+i-1)).f()
[解决办法]
当不确定算符优先级时不妨多加几层括号。

读书人网 >C++

热点推荐