C2059:语法错误:常量

时间:2014-12-10 23:49:13

标签: c++ compiler-errors

我在第19-23行解决C:2059错误时遇到问题。我确信我创建的矢量数据类型是正确的。我哪里出错?

调试器输出: C:\ Qt \ Tools \ QtCreator \ bin \ Neutropenia_Application \ classifier.h:21:错误:C2059:语法错误:'常数'

#ifndef CLASSIFIER_H
#define CLASSIFIER_H

#include "patient_data.h"
#include <QObject>
#include <vector>
#include <stdlib.h>

class Classifier : public QObject
{
    Q_OBJECT
public:
    explicit Classifier(QObject *parent = 0);
    ~Classifier();
    void classify(std::vector<patient_data>data, patient_data i);

    struct CreateSDTable
    {
        std::vector<long> sum(3);    // C2509 error    //element 0 = Tumor, element 1 = Stage, element 2 = Adjuvant
        std::vector<long> mean(3);     // C2509 error
        std::vector<long> error(3);  // C2509 error
        std::vector<long> SDL(3);   // C2509 error
        std::vector<long> SD(3);  // C2509 error
    };

    CreateSDTable CurrentvsNeutropenic;
    CreateSDTable CurrentvsNonNeutropenic;

private:
/*
    std::vector<int> calculatesums(std::vector<patient_data> data, patient_data i);
    std::vector<long> calculatemean(std::vector<int>validpatients, CreateSDTable Neut, CreateSDTable NonNeut);
    std::vector<long>calculateerror(patient_data d, std::vector<int>m);
    std::vector<long>calculatSDL(int nvp, CreateSDTable CVN, CreateSDTable CVsNN);
    std::vector<int> NumofValidPatients(std::vector<patient_data>x);

    //void classify(std::vector<patient_data>data, patient_data i);
*/
signals:

public slots:

};

#endif // CLASSIFIER_H

1 个答案:

答案 0 :(得分:1)

您无法以这种方式初始化成员变量。您需要单独声明和初始化:

struct CreateSDTable {
    std::vector<int> sum;
    ...
    CreateSDTable() : sum(3), ... {}
};