在过去的几天里,我一直在这里待了几个小时,并且尽可能地搜索到了最好的结果,因为我可以在线获得对此的回答,并且我被卡住了。就在我认为MSDN对我有答案时,我仍然遇到问题。我有一个标题InstalledPrograms.h
与class InstalledProgram{}
。C++ std :: list插入问题
三个构造
#ifdef CONSTRUCTOR
InstalledProgram::InstalledProgram();
InstalledProgram::InstalledProgram(String^ p_DisplayName);
InstalledProgram::InstalledProgram(String^ p_DisplayName, String^ p_ParentDisplayName, string p_Version);
#endif
我宣布名单:list<InstalledProgram> ProgramList;
它传递给这个函数:
list<InstalledProgram> InstalledProgram::GetUserUninstallKeyPrograms(RegistryKey ^CurUserInstallKey, RegistryKey^ HkeylmRoot, list<InstalledProgram> paramProgramList)
这样
GetUserUninstallKeyPrograms(Wow64UninstallKey, ClassKey, ProgramList);
做一些的东西,我可以在代码中的一个点,我需要插入一个新的实例进入榜单:
paramProgramList.insert(paramProgramList.end(), new InstalledProgram(Name));
我已经遇到的问题是,“”在插入前显示“没有重载函数的实例与参数列表匹配”,并且围绕InstalledProgram(Name)
的圆括号显示“No 参数类型(System :: String ^)”的构造函数的实例。
我不明白为什么。
任何帮助,将不胜感激。
我没有一个拷贝构造函数。我不认为我会用一个。但是我添加了一个,它仍然拒绝接受String ^的参数Name。我最终不得不创建一个空的新实例,手动设置该值,然后在将其传递给push_back之前进行复制。 –
我不能确定没有看到InstalledProgram的整个定义,但如果这是真的,我认为这意味着CONSTRUCTOR没有定义。 – dlf