在我们的一本教科书中,建议我们应该使用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;
我知道在after()之后使用const来使它们可以从const实例中调用。但是VAtEnd和VGetPosition(方法名称)之前的const是什么意思?
谢谢。
答案 0 :(得分: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
}