0

在我们的一本教科书中,建议我们应该使用 C++ 中的接口作为一种良好的设计实践。他们给出了下面的例子;

class IAnimation
{
  public:
      virtual void VAdvance(const int deltaMilisec) = 0;
      virtual bool const VAtEnd() const = 0;
      virtual int const VGetPostition() const = 0;
};

我没有得到以下含义:

virtual bool const VAtEnd() const = 0;
virtual int const VGetPostition() const = 0;

我知道 const 在 () 之后使用以使它们可以从 const 实例中调用。但是 VAtEnd 和 VGetPosition (方法名称)之前的 const 是什么意思?

谢谢你。

4

1 回答 1

7

这意味着返回类型是 const,它与以下内容相同:

virtual const bool VAtEnd() const = 0;
virtual const int VGetPostition() const = 0;

但是它没有实际意义,因为无论如何都会复制返回值。

如果您要返回一个对象:

struct A
{
    void goo() {}
};

const A foo() {return A();}



int main()
{
    A x = foo();
    x.goo();      //ok
    foo().goo();  //error
}
于 2012-04-16T16:23:47.157 回答