[英]Difference between virtual void funcFoo() const = 0 and virtual void funcFoo() = 0;
[英]What is the difference between const virtual and virtual const?
我看到C ++中的某些函数被声明为
virtual const int getNumber();
但是如果函数声明如下,有什么区别?
const virtual int getNumber();
这两者有什么区别?
如前所述,没有区别。 但请注意,这两者确实不同:
virtual const int getNumber();
virtual int getNumber() const;
在第一种方法中, const
引用int
类型的返回值。
在第二种方法中, const
指的是调用该方法的对象; 也就是说, this
将在此方法中包含类型T const *
, - 您将只能调用const
方法,仅修改mutable
字段等等。
没有区别。 声明的说明符通常可以按任何顺序编写。
没有区别。 如果我们查看decl-specifier-seq的语法摘要,我们可以看到它是以递归方式定义的:
唯一的限制是const
和volatile
可以与除自身之外的任何类型说明符组合(没有const const
, volatile volatile
等),对你使用它们的顺序没有规则。
没有不同。 您可以按自己喜欢的顺序应用修改器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.