scusa l'ignoranza ma dove di preciso?
ho modificato così perchè ho visto che in verità exit() è una funzione void
	codice:
	// .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;
private slots:
    void closeProgram();
};
#endif // MAINWINDOW_H
 
	codice:
	// .cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    connect(ui->actionExit, SIGNAL(triggered()), this, SLOT(closeProgram()));
}
MainWindow::closeProgram()
{
    exit(o);
}
MainWindow::~MainWindow()
{
    delete ui;
}
 
adesso mi da ben tre errori:
	codice:
	error: ISO C++ forbids declaration of ‘closeProgram’ with no type [-fpermissive]
error: prototype for ‘int MainWindow::closeProgram()’ does not match any in class ‘MainWindow’
error: candidate is: void MainWindow::closeProgram()
 
eppure nn mi sembra di sbagliare.
nell'intestazione il tipo di ritorno c'è.