请介绍技能点的增减机制，要求回答以C++代码段形式呈现，并且每一行的缩进必须是4个空格。
user
```cpp
    // 技能点增减机制的实现
    class SkillPointManager {
        private:
            int points; // 当前技能点数

        public:
            // 构造函数，初始化技能点
            SkillPointManager(int initialPoints) : points(initialPoints) {}

            // 增加技能点
            void addPoints(int increment) {
                points += increment;
            }

            // 减少技能点
            void subtractPoints(int decrement) {
                points -= decrement;
                if (points < 0) {
                    points = 0; // 技能点不能为负数
                }
            }

            // 获取当前技能点数
            int getPoints() const {
                return points;
            }
    };

    int main() {
        // 创建一个技能点管理器，初始技能点为10
        SkillPointManager manager(10);

        // 增加5个技能点
        manager.addPoints(5);
        std::cout << "After adding points: " << manager.getPoints() << std::endl;

        // 减少3个技能点
        manager.subtractPoints(3);
        std::cout << "After subtracting points: " << manager.getPoints() << std::endl;

        // 尝试减少20个技能点，技能点不会变为负数
        manager.subtractPoints(20);
        std::cout << "After subtracting excessive points: " << manager.getPoints() << std::endl;

        return 0;
    }
```
assistant