gpt4 book ai didi

c++ - 为什么这样做以及如何工作?非静态 Qt 对象

转载 作者:搜寻专家 更新时间:2023-10-31 00:21:09 28 4
gpt4 key购买 nike

我有点困惑,想澄清一下。

//QDir()::rmdir is from Qt Creator auto complete.
//It does not work.
//Says no such static function.I looked it up, turns out to be true.
//Fair enough...though I'm not sure why auto-complete suggested it.
bool success = QDir()::rmdir("Y:/dir1/dir2/dir3"); //Does not work.

//Now I could make a QDir object as such.
//I didn;t test this but I'm sure it would work fine.
//However it seems clumsy.
QDir d("Y:/"); //This seems like a waste.
d.rmdir("Y:/dir1/dir2/dir3");

//Lastly, the source of my confusion. QDir().rmdir
//This works, but WHY?
//There is no empty constructor for QDir in Qt Documentation.
//http://doc.qt.nokia.com/4.7/qdir.html
//Yet this empty constructor version works. Why?
bool success = QDir().rmdir("Y:/dir1/dir2/dir3");

我主要关心的是为什么最后一个示例 [QDir().rmdir] 有效?我在很多 Qt 类中都注意到了这一点。这是一个匿名对象吗?如果是的话这对于对象清理意味着什么?使用此表格安全吗?

最佳答案

其中一个 QDir 构造函数是:

QDir ( const QString & path = QString() )

您的 QDir().xxx 代码正在调用此构造函数,然后它默认使用 QString() 作为一个参数。

这是安全且正常的做法。

关于c++ - 为什么这样做以及如何工作?非静态 Qt 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4987955/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com