繁体   English   中英

const虚拟和虚拟const有什么区别?

[英]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的语法摘要,我们可以看到它是以递归方式定义的:

唯一的限制是constvolatile可以与除自身之外的任何类型说明符组合(没有const constvolatile volatile等),对你使用它们的顺序没有规则。

没有不同。 您可以按自己喜欢的顺序应用修改器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM