-4
我在一本C++书中读到,我们可以在C++中使用各种类实例。为什么作为指针的类实例使用堆而不是堆栈?
- 普通类实例
- 类实例如指针
例如:
class Person {
public:
Person();
Person(std::string name, int age){
}
};
//This will be created in the stack
A : Person John("John",68);
//This will be created in the heap
B : Person *Marcel("Marcel",31);
那么,为什么当我们使用指针创建一个对象(A)使用堆为什么在B,它会使用Stack?
B是无效的语法。 – 2015-04-01 14:52:04
你有反向:当你动态创建一个对象时,你会得到一个指向它的指针。你还能知道对象在哪里?您还可以使用地址运算符('&')制作指向具有自动存储持续时间的对象的指针。 – 2015-04-01 14:53:10
我质疑将类实例分类为“指针”和“正常”的书。您可能会从找到更好的书中受益。 – 2015-04-01 14:58:07