Qt程序报error: undefined reference to `MainWindow::~MainWindow()'

编译Qt程序时,编译器报error: undefined reference to `MainWindow::~MainWindow()'。这是因为Qt语法较严格,不会自动生成类的析构函数,需要程序员自己编写,即便里面什么内容也没有。所以,手写好MainWindow::~MainWindow()后,再编译问题就消失了。

Qt程序报error: undefined reference to `MainWindow::~MainWindow()'_第1张图片

 

析构函数(Destructor)也是一种特殊的成员函数,没有返回值,不需要程序员显式调用(程序员也没法显式调用),而是在销毁对象时自动执行。构造函数的名字和类名相同,而析构函数的名字是在类名前面加一个~符号。函数名是标识符的一种,原则上标识符的命名中不允许出现~符号,在析构函数的名字中出现的~可以认为是一种特殊情况,目的是为了和构造函数的名字加以对比和区分。

注意:析构函数没有参数,不能被重载,因此一个类只能有一个析构函数。如果用户没有定义,编译器会自动生成一个默认的析构函数。

 

你可能感兴趣的:(qt实战)