如何基于C++设计一个用来记录数据的类?

现在要求通过C++设计一个用于记录数据的类,在代码中埋点调用该类可以记录事件发生的次数,统计某个事件的成功率或者结果类型。
举例来说,在代码每次完成任务时可以记录一次,根据完成的结果可以记录其成功的次数。现在有多个场景需要记录数据,有些指标是共有的,有些则是独特的,如何设计一个类来实现记录数据的效果呢?

给个思路吧,首先这个需要记录成功的次数,按照我的理解应该设计成单例模式,对外记录接口,进行记录每次成功的次数,

SuccessNum* SuccessNum::m_pSuccess = nullptr;
int SuccessNum::m_iNum = 0;
class SuccessNum
{
private:
    explicit SuccessNum()
    {

    }
    ~SuccessNum()
    {

    }

    static SuccessNum* m_pSuccess;

    int m_iNum;
public:
    void success()
    {
        m_iNum++;
    }

public:
    static SuccessNum* GetInstance()
    {
        std::once_flag flag;
        std::call_once(flag, [&]()
            {
                if(m_pSuccess == nullptr)
                    m_pSuccess = new SuccessNum();
            });

        return m_pSuccess;
    }
};

共有的指标定义成static成员,独特的定义成普通的成员:
class Data
{
public:
    int 独有事件次数 = 0;
    static int 共有时间次数; = 0 
};
主程序
Data d1, d2;
d1.独有事件次数++;
d1.独有事件次数++;
d2.独有事件次数++;
cout << d1.独有事件次数 << " " << d2.独有事件次数 << endl;
Data.共有时间次数++;
cout << Data.共有时间次数;


不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^