所以我正在学习c ++,我刚刚学习了动态分配的内存.有些东西让我觉得很奇怪.
int main()
{
person* pOne = new person("mike", 35);
cout << pOne << " " << pOne->getName() << endl;
person pTwo = { "dave", 30 };
cout << pTwo.getName() << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我认为当我们想在pOne中调用getName()函数时,我们应该这样做,*pOne->getName()因为pOne持有内存位置,而不是person对象本身.但如果我这样做,我将有编译器错误.
我这样做pTwo不是动态分配的,它像我一样工作.
那么,有人可以解释在尝试调用函数时不使用"*"的逻辑吗?