我有一个这样的类:
class SomeClass {
public:
QString data;
SomeClass(const QString &);
};在.cpp文件中:
SomeClass::SomeClass(const QString &_data) {
data = _data;
}然后我像这样使用它:
SomeClass c("foobar");这将调用QString("foobar")并将其传递给SomeClass的构造函数。但是这个QString是一个自动对象,所以它的生命周期将在构造函数之后消失。另一方面,除非修改,否则data不会被复制(据我所知,Qt文档)。这段代码有没有可能存在生命周期问题,还是我错了?如何更好地设计它?
发布于 2011-07-08 19:14:41
一切都很好。销毁临时QString时,数据将被修改,因此将执行复制。数据修改是指在引用数据的字符串或包含数据的字符串中,在任何一侧都会被修改。
发布于 2011-07-08 19:19:41
您的代码是正确的。事件的顺序是:
当您向constructor
https://stackoverflow.com/questions/6623591
复制相似问题