I have a normal struct MyDataStruct, which has several members, some of them are Qt classes like QString, QMap, etc. In the code, at the start of a function, I instantiate this struct and throughout the function I fill it with data:
Код: Выделить всё
Class MyFolder
{
public:
QString m_name;
QString m_FolderName;
QString m_FolderValue;
int32_t m_level;
};
class MyBLock
{
public:
QString m_name;
QString m_BlockName;
QString m_BlockValue;
QString m_blockDescription;
};
class MyDataStruct
{
public:
uint32_t m_signature = 0;
QString m_currentValue;
QString m_expectedValue;
QString m_specificValue;
QString m_blockValue;
QString m_elementName;
QString m_version;
QString m_level;
QString m_machineValue;
QString m_userValue;
QString m_fileValue;
QString m_description;
QString m_dateValue;
QMap m_folderMap;
QStringList m_levelList;
QStringList m_nameList;
QStringList m_valueList;
QStringList m_dateList;
QList m_blockList;
QMap m_blockMap;
long m_firstError = 0;
long m_secondError = 0;
};
long MyClass::myFunction()
{
MyDataStruct data;
// Fill the 'data' struct with values
// Lot of things happen here to acquire and fill the data
...
// At this point, after the struct is filled with data, all members of 'data' are correctly filled.
// The crash happens here during assignment
MyDataStruct newData = data; // Crash occurs here
return 0;
}
< /code>
Затем в конце функции я использую оператор назначения для создания нового экземпляра этого класса, и это строка, где происходит сбой. Тем не менее, я не слишком переживаю с C ++ или QT, поэтому, когда они используются вместе, я не уверен, как они создаются. Это выглядит совершенно нормально, и именно поэтому странная часть начинается отсюда. Но когда я вступаю в оператор назначения, я вижу, что в новом экземпляре некоторые участники, в основном Qstring Код: Выделить всё
m_signatureЧто здесь происходит, и как я могу ее исправить?>
Подробнее здесь: https://stackoverflow.com/questions/797 ... f-my-class
Мобильная версия