Ich versuche eine kleine Anwendung zu schreiben und bin mit auto_ptr auf einen Fehler bei der Kompilierung gestoßen.ISO C++ verbietet die Deklaration von 'auto_ptr' ohne Typ
Ich müde ursprünglich Erstellen eines intelligenten Zeigers mit Klasse ich erstellt, aber der gleiche Fehler tritt auf, wenn ich versuche und einen Smart-Zeiger des Typs Int erstellen, so muss es etwas anderes, was ich falsch mache. Ich folgte dem Beispiel here..
Ich habe das Gefühl, die Antwort darauf wird mich selbst schlagen.
Ich erkläre den Smart-Pointer am Ende dieser Datei.
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <memory.h>
#include <QMainWindow>
#include "dose_calac.h"
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
/*
Some QT stuff here, removed for clarity/size...
*/
private:
Ui::MainWindow *ui;
/*
Object for storage of data and calculation of DOSE index score.
*/
std::auto_ptr<int> pdoseIn(new int); // A simple set case, but sill produces an error!?!
std::auto_ptr<DOSE_Calac> pdoseIn(new DOSE_Calac); // Original code, error found here at first.
};
#endif // MAINWINDOW_H
und das ist meine Klasse, dose_calach.h.
#ifndef DOSE_CALAC_H
#define DOSE_CALAC_H
class DOSE_Calac
{
public:
// constructor
DOSE_Calac();
// set and get functions live here, removed for clarity/size.
// function for caulating DOSE indexpoints
int CalcDOSEPoints();
private:
unsigned int dyspnoeaScale;
unsigned int fev1;
bool smoker;
unsigned int anualExacerbations;
unsigned int doseIndexPoints;
};
#endif // DOSE_CALAC_H
Jede Hilfe oder Vorschlag dankbar erhalten.
Randnotiz: 'auto_ptr' ist in C++ 11 veraltet. – iammilind