작은 응용 프로그램을 작성하려고하는데 auto_ptr을 사용하여 컴파일 오류가 발생했습니다.ISO C++에서 유형이없는 'auto_ptr'선언을 금지합니다.
내가 만든 클래스로 스마트 포인터를 만드는 것이 원래 피곤했지만 int 유형의 스마트 포인터를 만들면 다른 오류가 발생해야하므로 동일한 오류가 발생합니다. 나는 here. 주어진 예제를 따르고 있었다.
나는 이것에 대한 답이 나 자신을 때리는 결과가 될 것 같은 느낌이 들었다.
이 파일 맨 아래에 스마트 포인터를 선언합니다.
#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
이것은 내 수업 인 dose_calac.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
감사의 마음을 표하는 어떤 도움이나 제안.
사이드 노트 :'auto_ptr'은 C++ 11에서 사용되지 않습니다. – iammilind