gpt4 book ai didi

c++ - 动态分配内存的类不使用 "*"的逻辑

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:55:57 25 4
gpt4 key购买 nike

所以我正在学习 C++,我刚刚了解了为类动态分配的内存。有些东西让我觉得很奇怪。

int main()
{
person* pOne = new person("mike", 35);
cout << pOne << " " << pOne->getName() << endl;

person pTwo = { "dave", 30 };
cout << pTwo.getName() << endl;

return 0;
}

我认为当我们想在 pOne 中调用 getName() 函数时,我们应该像 *pOne->getName() 那样做,因为 pOne 保存的是内存位置,而不是 person 对象本身。但如果我这样做,我会遇到编译器错误。

我使用未动态分配的 pTwo 来完成它,它像我想的那样工作。

那么,有人可以解释一下在尝试调用函数时不使用“*”的逻辑吗?

最佳答案

内置运算符 a->b 定义为 (*a).b,因此取消引用“隐藏”在 -> 中 运算符。

关于c++ - 动态分配内存的类不使用 "*"的逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48909166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com