【发布时间】:2012-11-11 22:50:16
【问题描述】:
这是一个最小的工作示例:
啊哈:
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]
那么为什么它不起作用?这个决定背后的原因是什么?
【问题讨论】:
标签: c++ static scope static-methods