我有一个我想拥有一个静态成员的类,该成员是一个结构体。
例如:
.h文件:

typedef struct _TransactionLog
{
    string Reference;
    vector<int> CreditLog;
    int id;
}TransactionLog;

class CTransactionLog {
    static TransactionLog logInfo;
public:
    static void Clear();
    static TransactionLog getLog();
};
.cpp文件:
void CTransactionLog::Clear()
{
    logInfo.Reference = "";
    logInfo.CreditLog.clear();
 logInfo.id = 0;
}

TransactionLog CTransactionLog::getLog()
{
    return logInfo;
}
我懂了

有人可以给我一个例子,使这项工作吗?拥有一个为struct(带有STL成员)的静态成员,使用静态成员方法对其进行操作,并将此 header 包含在代码的其他几个部分中。这应该用于通过应用程序添加日志记录。

最佳答案

您需要在cpp文件中初始化静态成员:

//add the following line:
TransactionLog CTransactionLog::logInfo;

void CTransactionLog::Clear()
{
    logInfo.Reference = "";
    logInfo.CreditLog.clear();
 logInfo.id = 0;
}

TransactionLog CTransactionLog::getLog()
{
    return logInfo;
}

09-06 06:46