![](/img/trans.png)
[英]How can I initialize a const variable of a base class in a derived class' constructor in C++?
[英]How can I initialize a member const reference in a derived class, when I wish to call a base class constructor?
我什至在任何地方都找不到這個問題...所以這讓我相信我在這里做錯了什么...
可以說我有一個基類A,它的構造函數帶有int參數。 在我的派生類B中,我希望調用該構造函數,但還要初始化在B的構造函數中傳遞的成員引用。 我怎樣才能做到這一點? 如果調用基類構造函數,則找不到添加初始化列表的語法。 這可能嗎?
可以說我有:
Class Object
{
Object(){}
}
Class A
{
A(int number) : m_number(number){}
public:
int m_number;
}
現在,如果我想調用A的非默認構造函數,該如何初始化m_obj?
例如
Class B : Class A
{
B(int number, const Object& objRef) : A(number)
{
m_obj = objRef; //error, : must be initialized in constructor base/member
// initializer list...but I cannot access an initializer list!!
}
private:
const Object& m_obj;
}
就像我說的那樣,我的意圖可能在這里全錯了,但是如果有效,我將在Google上找不到任何語法示例。
對我好一點... :)
在構造函數的初始化列表中:
B(int number, const Object& objRef) : A(number), m_obj(objRef)
{}
(請注意,這與作為子類無關。您始終需要使用初始化列表來初始化作為引用的成員變量。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.