课程
/后端开发
/C++
/C++远征之封装篇(下)
1、堆实例化p对象数组,p[1]->m_x =1;这样合法吗
2、p+1.m_x合法吗
3、p+1->m_x合法吗
2019-08-18
源自:C++远征之封装篇(下) 2-2
正在回答
1.2均不合法,3存在语法错误
数组符号代表进行一次访问,1中p[1]代表访问到了第二个对象,此时再用->再次访问就不合理了;
p中存放的地址是第一个对象的,p+1代表第二个对象的地址,此时p+1还未进行访问操作,直接使用.取成员依旧是不合理的;
同理p+1代表一个指针存放第二个对象的地址,可以进行访问拿到m_x这个成员,但是p+1应该加上小括号,因为->的优先级高于+;
全面细致
举报
封装--面向对象三大特征之一,通过案例让C++所学知识融会贯通