在我开始之前,这不是一个风格意见问题。我想知道为什么以及是否真的必须在函数之前放置存储修饰符。哲学讨论如下。
一位非常友好的 C++ 语法警察曾经教我总是在要修改的小物件之后对对象放置修饰符。例如:
int const myint; // good
const int myint; // bad
这个想法,我很喜欢他或她的推理,是修饰符总是会修改它之前的属性。所以当我们声明一个方法时,逻辑约定是这样的:
const int const fun(); // bad
int const fun() const; // good
所以假设这是我做事的方式,并且没有重新开始辩论,为什么我必须在函数之前放置存储修饰符(例如静态) ?因此,相邻的 const 和 static 函数看起来会令人困惑,如下所示:
int fun1() const;
static int fun2();
鉴于从概念上讲,此上下文中的 static 和 const 关键字具有类别相关的角色(它们都修改了函数可以做什么和不能做什么,更广泛)不应该类似的语法规则适用于它们吗?我希望能够做到这一点:
int fun1() const;
int fun2() static; // why doesn't this work?