我刚刚从C切换到C++,而C中的所有内容都相当简单(与C++相比)。我将我在c中的命令行参数排序的程序迁移到了C++(即创建了类和东西),现在我尝试运行它时出现此错误。 它无法找到功能stringcomp的参考。任何人都可以帮助如何纠正它? 这个问题可能是基本的,所以请原谅我对C++的新意。stringcomp:必须调用非静态成员函数的引用
PS:标准杆是我的课名称
void Par :: sort()
{
int i;
char *s[size-1];
/* assign each argument to a pointer */
for (i = 1; i < size; i++)
s[i-1] = argNew[i];
qsort (s, size - 1, sizeof *s, stringcomp);//It yeilds an error here
for (i = 1; i < size; i++)
{
argNew[i] = s[i-1];
}
}
void Par :: parse(char **argv, int argc)
{
setArgs(argv, argc);
sortArgs();
}
int Par:: stringcomp (const void *x, const void *y)
{
return strcmp (*(char * const *)x, *(char * const *)y);
}
你为什么不直接使用'strcmp'? –
移动stringcomp上面的sort。 – ZDF
@ZDF我认为这不会有帮助;我认为'Par'是一个类,而不是一个名字空间。 –