0

我已经构建了一个基于类的下推自动机有限状态机。上下文类(其内部状态正在被修改的类)具有一些只有状态才能访问的方法(增加/减少一些迭代器、推送/弹出状态、设置接受状态等)。现在它们是公开的,因为不同的州需要访问它们。

使方法受保护/私有并将状态定义为上下文的朋友会更好吗?

(nb4“基于意见!”)

4

1 回答 1

1

为一个共同的目的创建一个类的集合是合理的,但是您可能会考虑另一种选择。

举一个非常简短、幼稚的例子:

class outer
{
 private:

 int a;
 int b;

 public:
 class inner
    { public:
      outer * o;

      inner( outer * io ) : o( io ) { o->a = 0; }

    };

};

int main(int argc, const char * argv[]) 
{
 outer o;
 outer::inner i( &o );

 return 0;
}

我很快就做到了,所以内部采用指针的构造并不是很好的 C++,所以不要把它当作建议。

关键是即使内部正在访问外部的私有成员,它也会编译。

这是做你所要求的另一种方式。

于 2015-09-28T03:07:43.500 回答