首页 > 解决方案 > 将类的实例传递给不同类 C++ 的构造函数

问题描述

为什么我不能将一个类(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++ 中将一个类的实例传递给另一个类的构造函数?

标签: c++oopconstructor

解决方案


推荐阅读