C++ 当我希望调用基类构造函数时,如何初始化派生类中的成员const引用?

C++ 当我希望调用基类构造函数时,如何初始化派生类中的成员const引用?,c++,class,reference,constants,derived,C++,Class,Reference,Constants,Derived,我在任何地方都找不到这个问题…所以这让我相信我在这里做错了什么 假设我有一个基类a,它有一个接受int参数的构造函数。 在我的派生类B中,我希望调用该构造函数,但也要初始化在B的构造函数中传递的成员引用。我该怎么做?如果调用基类构造函数,我找不到添加初始化列表的语法。这可能吗 假设我有: Class Object { Object(){} } Class A { A(int number) : m_number(number){} public: int m_number;

我在任何地方都找不到这个问题…所以这让我相信我在这里做错了什么

假设我有一个基类a,它有一个接受int参数的构造函数。 在我的派生类B中,我希望调用该构造函数,但也要初始化在B的构造函数中传递的成员引用。我该怎么做?如果调用基类构造函数,我找不到添加初始化列表的语法。这可能吗

假设我有:

Class Object
{
   Object(){}
}

Class A
{
   A(int number) : m_number(number){}

public:
   int m_number;
}
现在,如果我想调用一个函数的非默认构造函数,我将如何初始化m_obj

e、 g

正如我所说,我的意图在这里可能都是错误的,但如果它是有效的,我在谷歌上找不到任何语法示例


对我放松点…:)

在构造函数的初始化列表中:

B(int number, const Object& objRef) : A(number), m_obj(objRef)
{}

(注意,这与它是一个子类无关。您始终需要使用初始化列表来初始化作为引用的成员变量。)

在构造函数的初始化列表中:

B(int number, const Object& objRef) : A(number), m_obj(objRef)
{}

(注意,这与它是一个子类无关。您始终需要使用初始化列表来初始化作为引用的成员变量。)

还要注意,您不能“删除”引用常量,因此,您必须将
m_obj
成员更改为
const-Object&
,或者将构造函数更改为接受
Object&
而不是
const-Object&
@LihO,因此假设我希望向此类的成员函数传递一个非常量引用,但是我不希望函数修改被引用的对象?建议将函数参数作为常量引用传递,但这是否意味着被引用的对象也必须是常量?要点是,如果传递
const
引用,则应将其存储为
const
引用<代码>专用:对象&m_obj应该是
私有的:const Object&m_obj
。更新了对const的引用还请注意,您不能“删除”引用的constness,因此您必须将
m_obj
成员更改为
const Object&
,或者将构造函数更改为采用
Object&
而不是
const Object&
@LihO,假设我希望将一个非常量引用传递给这个类的成员函数,但我不希望该函数修改被引用的对象?建议将函数参数作为常量引用传递,但这是否意味着被引用的对象也必须是常量?要点是,如果传递
const
引用,则应将其存储为
const
引用<代码>专用:对象&m_obj应该是
私有的:const Object&m_obj。更新了对const的引用谢谢,它让我疯狂地试图找到该语法(即基类ctor之后的逗号)。谢谢,它让我疯狂地试图找到该语法(即基类ctor之后的逗号)。