C++ 将一个类的实例传递给另一个类C++;

C++ 将一个类的实例传递给另一个类C++;,c++,oop,constructor,C++,Oop,Constructor,为什么我不能将一个类(Class1)的实例传递给另一个类(Class2)的构造函数,而是必须在Class2对象的声明中创建一个新的Class1对象 class Class1{ public: int x; Class1(){ } Class1(int x){ this -> x = x; } }; class Class2{ public: int

为什么我不能将一个类(Class1)的实例传递给另一个类(Class2)的构造函数,而是必须在Class2对象的声明中创建一个新的Class1对象

 class Class1{
    public:
        int x;
        Class1(){

        }
        Class1(int x){
            this -> x = x;
        }
};

class Class2{
    public:
        int y;
        Class1 cInst;
        Class2(int y, Class1 cInst){
            this -> y = y;
            this -> cInst = cInst;
        }
};
Class1 a  = Class1(0);

Class2 b = Class2(1, a); //error message here : "no instance of constructor "Class2::Class2" matches the argument list -- argument types are: (int, Class1)"
Class2 c = Class2(1, Class1(0)); //this works

我在这里为c申报有效,但为b申报失败。我尝试过使用复制构造函数,但没有成功。是否可以将一个类的实例传递给C++中的另一个构造函数?< /p>这里编译为精细。看,嗯,那可能是我的编译器出了问题吗?我用的是gccNo,真的不可能。尝试将代码复制粘贴到新的源文件中并编译它。然后查找它与您遇到问题的代码之间的差异。在这里编译很好。看,嗯,那可能是我的编译器出了问题吗?我用的是gccNo,真的不可能。尝试将代码复制粘贴到新的源文件中并编译它。然后找出它与您遇到问题的代码之间的差异。