Вот минимальный рабочий пример:
хиджры:
class A{
static int a_member_function();
};
a.cpp
#include "A.h"
int A::a_member_function(){return 5;}
int main(){ return 1;}
Этот код компилируется и запускается, но мне кажется, что:
static int A::a_member_function(){return 5;}
можно было бы также легко использовать для определения статической функции-члена класса A. Действительно, кажется, что на самом деле было бы весьма полезно иметь это требование, поскольку это напомнит читателю .cpp файла, что a_member_function является статическим.
Однако это явно не работает:
error: cannot declare member function ‘static int A::a_member_function()’ to have static linkage [-fpermissive]
Так почему же это не работает? Каковы причины этого решения?