为了账号安全,请及时绑定邮箱和手机立即绑定

求教:为什么同样这个例子我从堆中申请对象连续调用方法就会出错:Array *arr = new Array(10); //cout<<arr->getLen()<<endl; arr->printInfo()->setLen(5);

省略了include...

int main(void)
{
    Array *arr = new Array(10);
    arr->printInfo()->setLen(5);
    cout<<"len="<<arr->getLen()<<endl;
    delete arr;
    arr=NULL;
    system("pause");
    return 0;
}

错误信息:error:base operand od '->' has non-pointer type 'Array'

正在回答

2 回答

printInfo()返回的是 Array& 么

0 回复 有任何疑惑可以回复我~
#1

qq_蕞終灬聽風者_0 提问者

我的返回值错了。
2016-08-15 回复 有任何疑惑可以回复我~

头文件里那个函数,你的返回值是指针还是对象??

0 回复 有任何疑惑可以回复我~
#1

qq_蕞終灬聽風者_0 提问者

我的返回值错了。
2016-08-15 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之封装篇(下)
  • 参与学习       70919    人
  • 解答问题       514    个

封装--面向对象三大特征之一,通过案例让C++所学知识融会贯通

进入课程

求教:为什么同样这个例子我从堆中申请对象连续调用方法就会出错:Array *arr = new Array(10); //cout<<arr->getLen()<<endl; arr->printInfo()->setLen(5);

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信