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

error: invalid use of ‘void’ c++ OOP

本文关键字:void c++ OOP 无效 错误      更新时间:2023-10-16
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说我滥用了void,我怎么能把它作为参数来设置呢?我遇到这个问题,却找不到解决方法

问题在这里Atracciones[i].setPopularidad(Atracciones[j].getPopularidad()) = Atracciones[j].setPopularidad(Atracciones[i].getPopularidad());在这个赋值中

我尝试做一个快速排序

Atracciones[j].setPopularidad(Atracciones[i].getPopularidad());将返回一个void (setPopularidad返回void),所以你试图将一个void分配给一个void void=void,你不能这样做