class A
{
protected:
int m_a;
int m_b;
};
class B: public A
{
};
在 B 类中,我想将 m_a
设为私有(private)。
下面的做法是否正确
class B:public A
{
private:
int m_a;
};
这不会产生 2 个 m_a
拷贝吗?
最佳答案
调整成员访问控制的正确方法是使用 using
declaration :
class B: public A {
private:
using A::m_a;
}
只写 int m_a;
确实会导致 m_a
的两个拷贝,并且派生类将能够访问 A
的通过编写 A::m_a
复制 m_a
。
关于c++ - 将其中一个继承的 protected 成员设为私有(private),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12510953/