当你有一个派生类时,是否有更简单的方法从方法中引用变量,而不是:
BaseClass::variable
编辑
碰巧,我找到了一个页面,它使用函数来解释这个问题:
Template-Derived-Classes Errors .显然,使用模板类时会有所不同。
最佳答案
如果基类成员变量是 protected 或公共(public)的,那么您可以在派生类的任何成员函数中通过名称引用它。如果它是基类私有(private)的,编译器根本不会让派生类访问它。示例:
class Base
{
protected:
int a;
private:
int b;
};
class Derived : public Base
{
void foo()
{
a = 5; // works
b = 10; // error!
}
};
对于将所有成员变量保持私有(private),并根据需要提供 getter 和 setter,还有一些话要说。
另外,要注意“隐藏”数据成员:
class Base
{
public:
int a;
};
class Derived : public Base
{
public:
int a;
};
这将创建两个名为 a
的变量:一个在 Base
中,一个在 Derived
中,这可能会导致混淆和错误。
关于c++ - 有没有一种简单的方法来使用基类的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/240874/