我可以想象这个问题已经被问到了,但实际上我找不到任何合适的解决方案,所以请原谅这是一个多余的问题。
在Main中,我试图将参数传递给位于不同项目中的类的构造函数。我正在使用Visual Studio 2015,C ++ / CLI来获取一些代码。这是Picture of the error message
以下是代码的简化视图:
注意:SQLAuthenticationInfo扩展AuthenticationInfo
主要
int wmain(int argc, wchar_t* argv[]){
wchar_t* name = L"cname"
AuthenticationInfo^ source = gcnew SQLAuthenticationInfo(gcnew System::String(name));
AuthenticationInfo^ destination = gcnew SQLAuthenticationInfo(gcnew System::String(name));
boolean silent = false;
// call constructor
SQLPrecheck precheck(source, destination, silent); //before building project, source is underlined
// message says: "no suitable user-defined conversion from "Parent ^" to "PreCheck" exists
}
SQLPrecheck.h
public class SQLPrecheck
{
public:
SQLPrecheck(AuthenticationInfo^ source, AuthenticationInfo^ destination, bool silent);
};
SQLPrecheck.cpp
#include "SQLPrecheck.h"
SQLPreCheck::SQLPrecheck(AuthenticationInfo^ source, AuthenticationInfo^ destination, bool silent){
}
其他信息:
我不知道这是否相关,但在main中执行SQLPrecheck()[CTRL + SHIFT + SPACE]会提示3个选项,但它们都不是我的实现,而在sqlprecheck.cpp文件中,第三个选项是我的自定义构造函数。 Screenshot
由于我不完全理解的原因,我不需要在主文件中#include sqlprecheck.h。添加它会产生重新定义错误。 这是引用引起的问题吗?
注意: 屏幕截图有不同的类名,因为它们来自我的实际项目,而不是我的简化示例。