点运算符和箭头运算符的区别
相同点:都可以用来访问成员。
不同点:
点运算符(“.”):
点运算符可以获取类实例化对象的一个成员。
箭头运算符(“->”):
箭头运算符是获取实例化对象指针指向对象的成员。
注意:
解引用运算符的优先级低于点运算符,考虑到运算优先级。
因此,往往需要在解引用两端加上括号
例如:
#include <iostream>
using namespace std;
class stu {
public:
String name;
};
int main() {
stu studAN;
studAN.name = "xiaoming" //实例对对象,点运算访问对象
stu* studBN = new stu;
studBN->name = "xiaoming";//实例指针,箭头访问对象成员
String name = "xiaoming"; //定义一个字符串
String *p = &name;
auto length = s.size(); //点运算符获取对象的成员
length = p->size(); //箭头运算符获取对象的成员
length = (*p).size(); //通过解地址后通过点运算获取对象成员
return 0;
};