-7

下面的代码在合成器、设计方面有什么问题?感谢您的回答。这个想法是创建一个包含子元素列表的元素类,它应该能够添加子元素,并获得所有元素的平均值。我曾经用 Java 思考,但不是 C++。所以我想知道如何以适当的方式在 C++ 中实现这样的类。

class Elements
{
private:
    int nbValues;
    int values[MAX];
    double coefs[MAX];
public: 
    Element(){}

    double getAverage()
    {
        double sum;
        for(int i =1; i<= MAX; i++)
        {
                sum = sum+values[i]*coefs[i];
        }
        return sum/nbValues;
    }
    void addElement(int value, double coef)
    {
        values[nbValues]=value;
        coefs[nbValues]=coef;
        ++nbValues; 
    }
}
4

2 回答 2

0

构造函数元素中的错字而不是 Elements(){}

您可以在构造函数中初始化 nbvalues:

 Elements() : nbvalues(0) {}
于 2013-06-02T13:47:46.300 回答
0

在当前形式中,所有方法都是私有的。您可以通过以下方式公开 getAverage() 和 addElement():

class Elements
{
    int nbValues;
    int values[MAX];
    double coefs[MAX];

    Element(){}

    public: // all the members & methods below will be public

    double getAverage()
    {
    int sum;
    for(int i =1; i<= MAX; i++)
    {
        sum = sum+values[i]*coefs[i];
    }
    return sum/nbValues;
    }
    void addElement(int value, double coef)
    {
        values[nbValues]=value;
    coefs[nbValues]=coef;
    ++nbValues; 
    }
}
于 2013-06-02T13:48:45.103 回答