c++ 不存在从“myClass1”到“myClass1”的合适的用户定义转换

问题描述 投票:0回答:1

我对 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”的转换。

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

c++ visual-c++ vector
1个回答
0
投票

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

要在堆栈上声明 myClass2 对象的实例,只需执行以下操作:

myClass2 c2;

doSomething
方法使用 myClass1 的副本,这可能不是您想要的。 未定义复制构造函数(但没有任何内容可复制)。 另外该函数什么也不做...

© www.soinside.com 2019 - 2024. All rights reserved.