我有我在某个课上写的函数。我不明白为什么当我创建名为: Square square; 的对象时 退出函数时正在调用 Square 的 d'tor。而当我将对象创建为: Square* square = new Square(); 没有 d'tor 被调用。
类上根本没有继承。
这里有两个版本的函数示例:
//=======Enter to d'tor in the end of the function to ~Square==========
void DrawShapesApp::addSquare()
{
int row, col;
int edge;
char ch;
Square square;
getSquareInfo(row, col, edge, ch);
square.setAll(row, col, edge, ch);
m_squares.push_back(&square);
}
//=======Doesn't enter to d'tor in the end of the function==========
void DrawShapesApp::addSquare()
{
int row, col;
int edge;
char ch;
Square* square = new Square();
getSquareInfo(row, col, edge, ch);
(*square).setAll(row, col, edge, ch);
m_squares.push_back(&square);
}