一开始,我的类的构造函数看起来像这样(简化):
ProjectSerializer(MetaDataSerializerPtr metaDataSerializer);
大多数时候,默认的MetaDataSerializer会做,所以我决定为metaDataSerializer设置默认值,如下所示:
ProjectSerializer(MetaDataSerializerPtr metaDataSerializer = MetaDataSerializerPtr(new MetaDataSerializer());
一切正常,直到我决定让MetaDataSerializer也具有构造函数参数。所以我尝试了这个:
ProjectSerializer(MetaDataSerializerPtr metaDataSerializer = MetaDataSerializerPtr(new MetaDataSerializer(DataManager data = DataManager())));
进而导致以下错误:
因此,我的问题是:我做错什么了吗?或者就是根本无法嵌套默认参数吗?
最佳答案
您不能在新运算符的操作数字段中定义类型。将 DataManager数据= DataManager 放在单独的语句中。
关于c++ - 可以在类的构造函数中嵌套默认参数吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18076593/