Visual C++ 不存在从"myClass1"到"myClass1"的合适用户定义转换

visual c++ no suitable user-defined conversion from "myClass1" to "myClass1" exists

本文关键字:myClass1 用户 转换 定义 C++ 不存在 Visual      更新时间:2023-10-16

我对c++非常陌生,当visual studio 2010突出显示这个语法错误时,我真的很困惑。定义

class myClass1 {
    public: 
        myClass1();
}
class myClass2 {
    public:
        myClass2();
        void doSomething(myClass1 thing) {};
}
int main(int argc, char* argv[]) {
    vector<myClass1> arr;
    arr.resize(1);
    arr[0] = myClass1();
    myClass2 c2 = myClass2();
    c2.doSomething(arr[0]); //this line is being highlighted as giving the error in the title
};

我真的不明白这是什么意思。

语法错误在我注释的那行,它给出了错误"没有合适的用户定义的从"myClass1"到"myClass1"的转换。

编辑:很抱歉没有把问题说清楚

myClass*类不包含任何内容/不做任何事情,因此很难理解您的目的。您的代码无法编译,因为没有定义构造函数。在您的代码粘贴中,您应该始终提供最少的相关信息(而不是更多)。

要在堆栈上声明一个myClass2对象的实例,只需这样做:

myClass2 c2;

doSomething方法使用myClass1的副本,这可能不是您想要的。没有定义复制构造函数(但没有要复制的东西)。而且这个函数什么也不做…