25

Timer オブジェクトを Timer::create() のみで作成したい。この目的のために、コンストラクターをプライベートにしました。ただし、new_allocator.h のコンテキスト内で「Timer::Timer(unsigned int)' is private」というコンパイラ エラーが発生します。どうすればこの問題を解決できますか?

class Timer {
    private:
        int timeLeft;
        Timer(unsigned int ms) : timeLeft(ms) {}

    public:
        static std::vector<Timer> instances;
        static void create(unsigned int ms) {
            instances.emplace_back(ms);
        }
};

std::vector<Timer> Timer::instances;
4

2 に答える 2