一开始,我的类的构造函数看起来像这样(简化):
ProjectSerializer(MetaDataSerializerPtr metaDataSerializer);
大多数时候,默认的 MetaDataSerializer 就可以了,所以我决定给 metaDataSerializer 一个默认值,如下所示:
ProjectSerializer(MetaDataSerializerPtr metaDataSerializer = MetaDataSerializerPtr(new MetaDataSerializer());
这工作得很好,直到我决定我希望 MetaDataSerializer 也有一个构造函数参数。所以我尝试了这个:
ProjectSerializer(MetaDataSerializerPtr metaDataSerializer = MetaDataSerializerPtr(new MetaDataSerializer(DataManager data = DataManager())));
这又导致了以下错误:
C2462“标识符”:无法在“新表达式”中定义类型
所以,我的问题是:我做错了什么还是不能嵌套默认参数?