1

失敗したのはクラス manejo.cpp のコンストラクターです。エラーは「manejo.cpp:3:16: error: array used as initializer」で、このエラーの場所がわかりません。

下に manejo.hpp クラスのソース コードと manejo.cpp の実装が添付されています。

#include "manejo.hpp"

manejo::manejo(){}
manejo::~manejo(){}

馬力

#ifndef __MANEJO_HPP
#define _MANEJO_HPP

#include <iostream>
#include <fstream>
#include <vector>
#include <string>

using namespace std;
using std::vector;
using std::string;

class manejo{

private:

     char cadena[128]="";
     vector <string> linea;
     long cantidadPD = 0;
     vector <string> palabras;
     int Creglas = 0;
     vector <string> reglas;
     long atoi(const char *str);


public:

     manejo();
     ~manejo();
     void EstablecerVariables();
     int StoInt (string numero);

};

#endif 
4

1 に答える 1

8

これ

 char cadena[128]="";

従来の C++ では合法ではありません (C++11 では合法ですが、そうしないとこのエラーが発生しないため、明らかにそれを使用していません)。を削除=""し、クラスではなくコンストラクターでデータ メンバーを初期化します。例えば

manejo::manejo()
{
    cadena[0] = '\0';
    ...
}
于 2013-10-13T15:49:27.677 に答える