这个问题在这里已经有了答案:Whenisaprivateconstructornotaprivateconstructor?(3个答案)关闭5年前。给出下面的示例,我惊讶地发现尽管默认构造函数被显式删除(或为此设置为默认构造函数),聚合初始化仍然是可能的。#includestructDefaultPrivate{constintn_;staticconstDefaultPrivate&create();private:DefaultPrivate()=delete;};constDefaultPrivate&DefaultPrivate::create(){staticDefaultP