一开始,我的类的构造函数看起来像这样(简化):

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/

10-15 06:13