-7

現在、コードブロックで最初のプロジェクトを作成していますが、新しいクラスを生成すると、一連のエラーが表示されます。

コード:

#ifndef SERVICIO_H 
#define SERVICIO_H
#include <iostream>
#include <string>
using namespace std;

class Servicio
{
public:
    Servicio();
    virtual ~Servicio();
    int codigo Get[10]() { return [10]; }
    void Set[10](int codigo val) { [10] = val; }
    string nombre Get[10]() { return [10]; }
    void Set[10](string nombre val) { [10] = val; }
    float precio Get[10]() { return [10]; }
    void Set[10](float precio val) { [10] = val; }
    float comision Get[10]() { return [10]; }
    void Set[10](float comision val) { [10] = val; }
protected:
private:
    int codigo [10];
    string nombre [10];
    float precio [10];
    float comision [10];
}

#endif // SERVICIO_H

そしてエラーログ:

|12|error: expected ';' at end of member declaration|
|12|error: 'Get' does not name a type|
|13|error: expected ',' or '...' before 'val'|
|13|error: declaration of 'Set' as array of functions|
|13|error: expected ';' at end of member declaration|
|14|error: expected ';' at end of member declaration|
|14|error: 'Get' does not name a type|
|15|error: expected ',' or '...' before 'val'|
4

3 に答える 3

0

C++11 を使用できる場合は、使用を検討してstd::arrayください。詳しくはこちらをご覧ください。

#include <array>
#include <iostream>

class Servicio
{
public:
    Servicio() { }
    virtual ~Servicio() { }

値のみが必要なため、参照によって戻りたくありませんget

    std::array<int, 10> get_codigo() const {
        return codigo;
    }

valueここでは、codigo に割り当てる前に 何かを行うことを検討できます。

    void set_codigo(const std::array<int, 10>& value) {
        codigo = value;
    }

protected:
private:
    std::array<int, 10> codigo;
    std::array<std::string, 10> nombre;
    std::array<float, 10> precio;
    std::array<float, 10> comision;
};

いずれにせよ、このスタイルのコーディングは扱いにくく、おそらく正しいアプローチではありません。

于 2013-11-09T15:43:53.013 に答える
0

何?このコードは、C++ とはまったく異なります。コーディングを始める前に、本を読む必要があります。C++ は、これまで知っていたどの言語とも大きく異なります。構文が異なるだけでなく、概念が異なります。すでに知っていることだけを使って C++ をコーディングできるわけではありません。ある程度勉強する必要があります。

上記のアドバイスを受け入れる可能性は低いと思いますので、ここから始めましょう。これは少なくとも合法的なコードです (ただし、良いコードではありません)。

class Servicio
{
public:
    Servicio();
    int* GetCodigo() { return codigo; }
...
private:
    int codigo [10];
};
于 2013-11-09T15:44:32.420 に答える