我来自一个Java
背景,我最近开始Qt
学习C++
. 在进行一些编码时,我对对象创建和成员声明产生了一些疑问:
假设我有一个声明如下的类:
类A.h:
class ClassA {
private:
MyObject myObj;
QString *declaredArray;
QSharedPointer<MyObject> obj;
public:
void setInfo();
}
A类.cpp
void ClassA::setInfo() {
declaredArray = new QString[5];
obj = QSharedPointer<MyObject>(new MyObject, doDeleteLater);
}
声明的标头中发生了什么MyObject myObj;
?是否使用不带参数的构造函数MyObject
在堆栈中创建类型的对象并将其分配给变量?myObj
或者只声明了一个准备存储MyObject
对象的空变量?
我如何将在ClassA.cpp
堆栈中创建的新对象分配给myObj
变量?
declareArray是在堆中创建的 s 数组int
,我应该添加带有 a 的析构函数delete declaredArray;
以避免内存泄漏吗?
声明的标头中发生了什么QSharedPointer<MyObject> obj;
?是否MyObject
创建了一个空指针?ClassA.cpp
( )中的赋值obj = QSharedPointer<MyObject>(new MyObject, doDeleteLater);
是否正确?