Подсчитать количество всех вызовов функции класса - PullRequest
0 голосов
/ 23 января 2020

У меня есть такой класс:

class Handler : public QObject
{
    Q_OBJECT
public:
    explicit Handler(Scene *scene, QObject *parent = nullptr);
    ~Handler();
    void runTests(const QVector<Test> *tests);

private:
    Scene *m_scene; // parent, not owned
    const QVector<Test> *m_tests; // Not owned, set by others
};

Функция runTests:

void Handler::runTests(const QVector<Test> *tests)
{
    if (tests->isEmpty()) {
        return;
    }

    m_tests = tests;

    // ... do things ...

    return;
}

Я намерен подсчитать количество вызовов функции runTests по любому объект создан из класса Handler. Я запутался, как использовать static членов для этого. Кто-нибудь может помочь?

1 Ответ

1 голос
/ 23 января 2020

Если не имеет значения, что Handler называет, то static - это путь к go. Вы можете поместить член static в класс как частную переменную или просто поместить его в функцию.

void Handler::runTests(const QVector<Test> *tests)
{
    static size_t _numTimesCalled = 0;
    ++_numTimesCalled;

    if (tests->isEmpty()) {
        return;
    }

    m_tests = tests;

    // ... do things ...

    return;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...