将QFile传递给函数

3

generateCSVHeader(*file4); 处出现非法的间接引用错误。

函数声明:

void generateCSVHeader(QFile * file);

使用函数:

str="MyData.csv";
QFile file4(str);
generateCSVHeader(*file4);

当我删除解引用标识符时,它会报告一个“无法将QFile转换为QFile *”错误。
1个回答

3
你应该传递指向你的QFile对象的指针(即地址),而不是传递对象本身(取消引用是无关紧要的,因为它仅与指针而非对象一起使用)。要获取对象的地址,你应该使用&运算符。所以你必须这样调用你的函数:
generateCSVHeader(&file4)

此外,您可以考虑使用引用而非指针。

1
声明你的函数像这样:void generateCSVHeader(QFile & file);。然后只需将你的对象传递给它:generateCSVHeader(file)。引用工作方式类似于常量指针,会自动解除引用。 - nameless

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接