【问题标题】:Passing QFile to function将 QFile 传递给函数
【发布时间】:2013-01-10 02:40:20
【问题描述】:

我在generateCSVHeader(*file4); 收到非法间接错误。

函数声明:

void generateCSVHeader(QFile * file);

功能使用:

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

当我删除取消引用指示符时,它给了我一个 cannot convert QFIle to QFile * 错误。

【问题讨论】:

    标签: qt dereference qfile


    【解决方案1】:

    您应该将 pointer 传递给您的 QFile 对象(这是一个地址),而不是传递对象本身(取消引用是无关紧要的,因为它只用于指针,而不是对象)。要获取对象的地址,您应该使用 & 运算符。所以你必须像这样调用你的函数:

    generateCSVHeader(&file4)
    

    另外,您可以考虑使用引用而不是指针。

    【讨论】:

    • 像这样声明你的函数:void generateCSVHeader(QFile & file);。然后将您的对象传递给它:generateCSVHeader(file)。引用的工作方式类似于自动取消引用的常量指针。
    猜你喜欢
    • 1970-01-01
    • 2020-07-28
    • 2012-03-25
    • 2013-01-27
    • 2014-09-10
    • 2010-11-01
    • 2016-04-27
    • 2014-04-10
    • 2012-05-07
    相关资源
    最近更新 更多