[英]C++ Access private member from a derived class to another derived class (both have the same base class)
因此,我有一個帶有兩個派生類(deriv1和deriv2)的基類。 在deriv2類上,我需要從deriv1訪問私有成員...我該怎么做?
樣例代碼:
class base
{
private:
public:
base() {};
~base() {};
};
class deriv1 : public base
{
private:
int m_member1;
public:
deriv1() {};
~deriv1() {};
};
class deriv2 : public base
{
private:
int m_member2;
public:
deriv2() {};
~deriv2() {};
int sum_members_because_yes(void)
{
return (deriv1::m_member1 + m_member2); // <---- :((
}
};
如何從另一個派生類訪問私有成員? 我試圖避免使用朋友功能,或避免將私人成員更改為公共成員…… 您有何建議?
謝謝! :)
您不能從deriv2
訪問deriv1
私有數據成員。
您有兩種選擇可以克服這一問題:
做一個getter訪問您m_member1
在deriv1
類。
class deriv1 : public base
{
private:
int m_member1;
public:
int get_member1() const { return m_member1; }
[...]
}
在m_member1
上使用protected
,並使您的deriv2
也從deriv1
派生。
class deriv1 : public base
{
protected:
int m_member1;
[...]
}
class deriv2 : public base, public deriv1
{
[...]
}
使用似乎與您的上下文一致的選項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.