Oto minimalne przykład roboczych:Dlaczego funkcja statycznego elementu _declared_ static, ale _defined_ inaczej w C++?
Ah:
class A{
static int a_member_function();
};
A.cpp
#include "A.h"
int A::a_member_function(){return 5;}
int main(){ return 1;}
Ten kod kompiluje i działa, ale wydaje mi się, że:
static int A::a_member_function(){return 5;}
może równie dobrze zostać użyte do zdefiniowania statycznej funkcji członka c lass. Rzeczywiście, wydaje się, że może to być raczej użyteczne, aby mieć to wymaganie, ponieważ przypomniałoby to czytelnikowi pliku .cpp, że a_member_function jest statyczna.
to jednak wyraźnie nie działa:
error: cannot declare member function ‘static int A::a_member_function()’ to have static linkage [-fpermissive]
Więc dlaczego nie działa? Jakie jest uzasadnienie tej decyzji?
Ah. Ma jakiś sens. Dzięki! –