这个Qt样板构造函数如何不递归?

时间:2016-08-06 23:04:50

标签: c++ qt recursion

因此,当您创建标准Qt5窗口小部件应用程序时,这是$(function() { $('body').on('mouseenter', '.tooltip:not(.tooltipstered)', function(){ $(this) .tooltipster({ content: 'Loading...', functionBefore: function(instance, helper){ var $origin = $(helper.origin); $.ajax({ type: "POST", url: baseUrl+"/requests/load_profilecard.php", data: 'id='+ $origin.attr('data-id')+"&token_id="+token_id, cache: false, success: function(html) { // call the 'content' method to update the content of our tooltip with the returned data instance.content(html); } }); }, interactive:true, contentAsHTML:true, maxWidth:250 }) .tooltipster('open'); }); }); 子类的样板代码:

QMainWindow

mainwindow.h

#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H

mainwindow.cpp

所以这个类有自己的实例,看起来很好。但是那个实例本身就会有一个自己的实例,而这个实例本身就会有一个实例......

这怎么不导致包含自己的类的无限递归?

1 个答案:

答案 0 :(得分:3)

这些不是同一类。 MainWindow在全局命名空间中声明,而ui成员的类型为Ui::MainWindow,在Ui命名空间中声明。您可以通过查看ui_mainwindow.h来查看此课程的声明。

由于这是两种不同的类型,因此不会发生递归,因为MainWindow::~MainWindow()不会从其内部调用。