可能这个问题已经被问过了,但我找不到。如果您看到了什么,请重定向我。 问题: 使用有什么好处:
myClass* pointer;
超过
myClass* pointer = new(myClass);
通过阅读其他主题,我了解到第一个选项在堆栈上分配一个空间并使指针指向它,而第二个选项在堆上分配一个空间并使指针指向它。但是我还读到第二个选项很乏味,因为您必须使用删除来释放空间。那么为什么要使用第二种选择。我是菜鸟,所以请详细解释。
编辑
#include <iostream>
using namespace std;
class Dog
{
public:
void bark()
{
cout << "wouf!!!" << endl;
}
};
int main()
{
Dog* myDog = new(Dog);
myDog->bark();
delete myDog;
return 0;
}
和
#include <iostream>
using namespace std;
class Dog
{
public:
void bark()
{
cout << "wouf!!!" << endl;
}
};
int main()
{
Dog* myDog;
myDog->bark();
return 0;
}
都编译并给我“wouf !!!”。那么为什么要使用“new”关键字呢?