C++ 当我希望调用基类构造函数时,如何初始化派生类中的成员const引用?
我在任何地方都找不到这个问题…所以这让我相信我在这里做错了什么 假设我有一个基类a,它有一个接受int参数的构造函数。 在我的派生类B中,我希望调用该构造函数,但也要初始化在B的构造函数中传递的成员引用。我该怎么做?如果调用基类构造函数,我找不到添加初始化列表的语法。这可能吗 假设我有: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;
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之后的逗号)。