我有一个 Derived 类,它派生自 Base 类。在 Derived 的函数中,我可以访问 Base 的 protected 成员。例如,我可以做到这一点。
class Base
{
protected:
int i;
}
class Derived : class Base
{
void process()
{
i = 5;
}
}
我的问题是,在从派生类访问基类成员时是否可以强制使用范围解析运算符?原因是我想在代码中明确哪些变量来自基类。强制执行是为了让我不会不小心跳过范围解析运算符(我很粗心)。我不喜欢使用访问器,因为派生类中需要许多来自基类的成员,这使得编码变得乏味。顺便说一句,我正在使用 MSVC 2010。
class Base
{
protected:
int i;
}
class Derived : class Base
{
void process()
{
Base::i = 5; //enforce so that i=5 won't compile
}
}
最佳答案
你可以通过引入另一个范围来模拟它:
class Base {
protected:
struct Data {int i;};
Data d_Base;
};
class Derived : class Base {
void process() {
d_Base.i = 5;
}
};
关于c++ - 从派生类访问基类成员时强制使用范围解析运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3888679/