Статический член класса, который является структурой - PullRequest
2 голосов
/ 13 октября 2011

У меня есть класс, в котором я хотел бы иметь статический член, который является структурой.

например: .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;
}

Я получаю

Описание Путь к ресурсу Тип местоположения

неопределенная ссылка на `CTransactionLog :: logInfo 'TransactionLog.cpp

Может кто-нибудь дать мне пример, как сделать эту работу? Имея статический член, который является структурой (с элементами stl), манипулируйте им с помощью статических методов-членов и включайте этот заголовок в несколько других частей кода. Это следует использовать для добавления регистрации через приложение.

1 Ответ

6 голосов
/ 13 октября 2011

Вам нужно инициализировать статический член в файле cpp:

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

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

TransactionLog CTransactionLog::getLog()
{
    return logInfo;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...