错误:无效使用'void'c ++ OOP

时间:2015-05-17 18:22:05

标签: c++ oop

class Atraccion
{
    private:
        string Nombre;
        int popularidad;

    public:
        Atraccion(){}

        void setNombre(string  nom)
        {
            Nombre=nom;
        }
        string getNombre()
        {
            return Nombre;
        }
        void setPopularidad(int popu)
        {
            popularidad=popu;
        }
        int  getPopularidad()
        {
            return popularidad;
        }

};
Atraccion Atracciones[99999];

void Quicksort(int li, int ls)
{

    int i = li;
    int j = ls-1;
    int tmp,a, b;
    int indice=(li+ls)/2;
    int p=Atracciones[indice].getPopularidad();

    while (i <= j)
    {
        while ((Atracciones[i].getPopularidad())< p) i++;
        while ((Atracciones[j].getPopularidad())> p) j--;

        if (i <= j)
        {
            tmp = Atracciones[i].getPopularidad();
            Atracciones[i].setPopularidad(tmp);

            Atracciones[i].setPopularidad(Atracciones[j].getPopularidad()) =
                Atracciones[j].setPopularidad(Atracciones[i].getPopularidad());
            Atracciones[j].getPopularidad() = tmp;
            Atracciones[j].setPopularidad(tmp);

            i++; j--;
        }

    }

    if (li < j)
        Quicksort(li, j);
    if (i < ls)
        Quicksort(i, ls);

}

当我把set作为参数函数时,get告诉我,我误用了虚空,我怎么能花费作为参数设置?我有这个问题,找不到解决方案

问题出在这里 Atracciones[i].setPopularidad(Atracciones[j].getPopularidad()) = Atracciones[j].setPopularidad(Atracciones[i].getPopularidad()); 在此分配中

我尝试做一个快速排序

1 个答案:

答案 0 :(得分:1)

Atracciones[j].setPopularidad(Atracciones[i].getPopularidad());将返回一个void(setPopularidad返回void),因此您尝试将void分配给void void=void并且无法执行此操作