-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

3

你需要一个;在类的右括号之后。

于 2013-11-09T15:34:26.617 回答
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 回答