当在堆栈上创建的实例超出其范围时,C ++编译器是否使用默认的析构函数?我有点困惑,因为我假设在堆上分配内存时会调用析构函数。我使用下面的代码示例。
enum Stage{starter, inbetween, graduating};
class Student
{
public:
Student(const std::string & a_name, Stage a_stage);
private:
const std::string name;
};
和主要
int main( void )
{
Student s1{"Konjit", graduate}; // student instance on stack
return 0;
}