排序对象指针数组

时间:2015-02-03 23:16:22

标签: c++ sorting pointers access-violation stl-algorithm

我正在学习大学中的继承,我被赋予了一个创建一个Product指针数组(基类)的任务,并用Software或Book对象(派生类)填充它

我做了所有这些没有任何问题(禁止我们应该得到的切片问题)

数组填满后,我们被要求按升序排序。

我做了一些研究并决定使用std::sort() function

我的问题是我遇到了访问冲突错误,已经很晚了,我很累,我忽略了一些明显的东西吗?

我遗漏了很多代码,如果我需要包含任何帮助解决方案的内容,请告诉我。

    bool wayToSort(Product *i, Product *j)
{
    return  i->getGrossPrice() < j->getGrossPrice();
}

int main(){

Product *prodPtr[10];

// Sort Product array
    std::sort(begin(prodPtr), end(prodPtr), wayToSort);


    for (int i = 0; i < 3; i++){
        cout << "Gross price for prod " << i + 1 << ": " << prodPtr[i]->getGrossPrice() << endl;
    }

}

访问冲突在getGrossPrice()函数中 Product.cpp

double  Product::getGrossPrice(){
    double grossPrice = (netPrice * 21 / 100) +  netPrice;
    return grossPrice;
}

0 个答案:

没有答案