2011-08-12 33 views
0

我有什麼是兩班問題處理利弊REF一類內的另一個

//class A is a kind of config-class which have configuration details 
//for class B 
class A{ 
//.... 
}; 

class B{ 
public: 
B(A const& _a) 
:a(_a){} 

private: 
A const& a; 
}; 

直到此時一切都很好。

現在我想是B::configure(A const& _a)函數,這樣我可以的configuration class A參考動態傳遞到class B其將被分配給成員變量a。但我無法更改成員變量B::a,因爲它是const&

什麼可以解決?

我認爲@Seth卡內基的做法是更好的,我應該以這種方式使用指針來class Aclass B

class B{ 
    public: 
    B(A const& _a) 
    :a(_a){} 
    configure(A const& _a) 
    { a = &_a; }  
    private: 
    A const* a; 
    }; 
+0

您想更改成員引用引用的對象的值,或者您希望成員引用引用另一個對象嗎?無論哪種情況,你只能做前者而不是後者。 –

回答

2

你不能改變一個參考,它已經初始化後,無論是const與否。 const只是讓您不要更改引用所指的變量。因此,在構建實例後更改變量,您必須使用指針而不是引用。

你的語法很不清楚,告訴我我是否誤解了這個問題。