【问题标题】:How to access a non-public variable in a base class?如何访问基类中的非公共变量?
【发布时间】:2014-03-22 23:24:59
【问题描述】:

我在一个派生类的方法中,大致如下:

Class Base
{
   private:
     int variableIWantToAccess;

}

Class Derived : public Base
{

   public someMethod() {
        variableIWantToAccess++;   <<-----ERROR

}

如何访问在基类中声明的变量?我无法访问它,因为它是私有的。

【问题讨论】:

  • 你不能让你的字段成为受保护的财产。

标签: oop language-agnostic


【解决方案1】:

您应该将其声明为 protected 而不是 private
Protected 类的成员只能由类后代访问。

【讨论】:

  • 显然,作为 getter 的受保护函数是要走的路,不要将变量声明为受保护,但您肯定为我指出了正确的方向,谢谢
【解决方案2】:

将字段保留为私有并创建一对受保护的 getter / setter 方法(出于同样的原因,您不会公开公共字段)。

Class Base
{
   private:
     int variableIWantToAccess;

   protected:
     int GetVariable() { return variableIWantToAccess; }
     void SetVariable(int var) { variableIWantToAccess = var; }

}

【讨论】:

    猜你喜欢
    • 2019-06-24
    • 1970-01-01
    • 1970-01-01
    • 2012-11-15
    • 2014-03-04
    • 1970-01-01
    • 1970-01-01
    • 2018-11-27
    • 1970-01-01
    相关资源
    最近更新 更多