【发布时间】:2022-01-05 12:50:57
【问题描述】:
美好的一天,
当我尝试学习一门编程语言时,我通常发现最好查看其他人的代码。
我现在正在尝试学习 C++,但在理解以下函数时遇到了一些困难(例如):
Vehicle* MyClass::GetVehicleByID(uint id)
{
Vehicle* car = new Vehicle;
car->model = vehiclesArray[id].model;
return car;
}
int main()
{
Vehicle* car = myClass.GetVehicleID(0);
std::cout << "Car Model: " << car->model << std::endl;
}
我想我理解指针的概念。但我不明白这个对象什么时候会被销毁。我是否必须在主函数中手动删除对象“汽车”?另外,为什么我们使用 new 关键字而不是仅仅使用“Vehicle car();”?据我了解,新关键字将在使用对象填充之前分配内存?
只是问这些问题,我是否完全超出了我的理解范围?我在哪里或如何学习了解这段代码中发生了什么?因为似乎所有教程都只解释“基础”,例如指针是什么以及最基本的使用方法。
任何帮助将不胜感激。
【问题讨论】:
-
技术上是内存泄漏。在程序退出之前没有人显式调用
delete car。
标签: c++11