繁体   English   中英

类中的C ++对象构造

[英]C++ Object Construction inside a Class

我有三节课; 它们的函数定义在sperate文件中。 我正在尝试在不使用内联实现的情况下在另一个类中构造具有各种参数的对象。

class A{     
     public:
       A(){}  
};

class B{         
     public:
         //takes in two ints, one reference to object, and a string 
         B(int x, int y, A &a, std::string s );
};

class C{        
    public:            
        //in the constructor, construct b_obj with its parameters 
        C();

    private:
        B b_obj;
 };

如何使C构造函数构造b_obj及其int参数,对A实例的引用以及字符串? 我尝试了一些方法,但是我得到一个错误,抱怨没有匹配调用b_obj构造函数。

使用初始化程序:

C() : b_obj(5, 6, A(), ""){}

但是,这一行在技术上是行不通的,因为B的构造函数需要一个A& ,因此你不能将临时绑定到它。 const A &如果它没有被改变,或者A如果是,会制定出更好,如果你没有一个非暂时性的A中通过。

您需要将相关项传递给对象C的构造函数,然后使用初始化程序。

class C {
    public:
        C(int x, int y, A& a, std::string s) : b_obj(x, y, a, s) {}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM