多制造商和类型转换
Multiple makers and type conversion
Vector<Medicine*>* Controller::sortByStockAsc(){
Vector<Medicine*>* all =repo->getAll();
qsort(all, all->getSize(),sizeof(Medicine*), (comparefunction) compareNA);
return all;
}
那么,上面的函数应该对对象数组进行排序。我得到错误
cannot convert 'Vector<Medicine*>' to 'Vector<Medicine*>*' in initialization
但是如果我把它写为Vector<Medicine*> all =repo->getAll();
,我会在第三行得到一堆新的错误(如果我在第二行有之前的错误,就不存在了):
Multiple markers at this line
- Method 'getSize' could not be resolved
- Invalid arguments ' Candidates are: void qsort(void *, unsigned int, unsigned int, int (*)(const void *, const
void *)) '
- base operand of '->' has non-pointer type 'Vector<Medicine*>'
这有什么问题,我怎么解决它?
试试这个:
Vector<Medicine*> Controller::getMedicinesSortedByStockAsc() {
Vector<Medicine*> all = repo->getAll();
std::sort(all.begin(), all.end(), compareNA);
return all;
}
指出:
- 你没有提供
Vector
的定义,所以我认为它是stl兼容的。从剩下的代码来看,这可能是一个错误的假设。 - 你没有提供
compareNA
的描述,但我选择假设它可以与stl风格算法兼容。
相关文章:
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- C++中的双指针类型转换
- 逐位操作的隐式类型转换
- 模板中的类型转换
- 在 C++(和 C)中进行类型转换时明显不一致
- 字符类型转换不兼容
- 将复杂的非基元C++数据类型转换为 Erlang/Elixir 格式,以使用 NIF 导出方法
- C++:用户定义的显式类型转换函数错误
- 将类指针类型转换为键时出错
- 通过引用传递参数时C++类型转换
- 在 C++ 中将一个模板类型的对象类型转换为另一个模板类型
- C++显式类型转换(C 样式强制转换)的强制表示法和static_cast的多种解释
- C++无效的函数类型转换
- 在将派生类指针类型转换为派生类指针后,从基类指针调用派生类函数
- 如何将Windows产品类型转换为名称?
- 通过构造函数方法输出的类到类类型转换是 5500 为什么不是 5555
- 事件系统:使用类型转换或联合进行继承
- 如何在参数中定义隐式类型转换的构造函数?
- 多制造商和类型转换