• 4756阅读
  • 3回复

<<重载的问题 [复制链接]

上一主题 下一主题
离线opengl081
 
只看楼主 倒序阅读 楼主  发表于: 2008-11-20
— 本帖被 XChinux 执行加亮操作(2008-11-30) —
我在.h文件中添加了ftream.h,iostream.h,stdlib.h后
fstream pjfile;
pjfile.open(dir,ios::out);
QString projectname;
pjfile<<projectname;
在写文件时出错: ambiguous overload for 'operator<<' in '((SelectProjectDialog*)this)->SelectProjectDialog::pjfile << (((SelectProjectDialog*)this)->SelectProjectDialog::projects + (+(((unsigned int)j) * 12u)))->project::projectname'

是不是<<或>>不能输入输入QString类型的数据?
离线vrcats
只看该作者 1楼 发表于: 2008-11-20
可能Qt也定义了全局的fstream operator <<(QString),所以出现了二义性。建议使用QDataStream或者QTextStream代替
离线opengl081
只看该作者 2楼 发表于: 2008-11-21
我使用了QTextStream,还是出错:
  QDir pjdir;
    QFile pjfile(pjdir+"\\Project.txt");
    pjfile.open(QIODevice::WriteOnly | QIODevice::Text)
    QTextStream outfile(&pjfile);
    outfile << projects[j].pname << projects[j].power << projects[j].ppass << endl;
Dialog.cpp:167: error: `outfile' undeclared (first use this function)
Dialog.cpp:167: error: (Each undeclared identifier is reported only once for each function it appears in.)
离线opengl081
只看该作者 3楼 发表于: 2008-11-21
解决了,感谢vrcats。
快速回复
限100 字节
 
上一个 下一个