我对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“。
编辑:抱歉没有明白问题
答案 0 :(得分:0)
myClass *类不包含任何东西/什么都不做,所以很难理解你的目的。 您的代码将无法编译,因为未定义构造函数。 您应始终在代码段中提供最少的相关信息(而不是更多)。
要在堆栈上声明myClass2对象的实例,只需执行:
myClass2 c2;
doSomething
方法使用myClass1的副本,这可能不是您想要的。
未定义复制构造函数(但没有要复制的内容)。
此外,该功能无效...