【发布时间】:2014-11-16 14:34:35
【问题描述】:
在实现一个用于在屏幕上创建/更新框的类时,我想添加一个静态成员函数,以确保没有当前可见的框重叠(将其信息从静态指针数组获取到所有当前可见的框)
我的初始代码具有以下结构:
class Box
{
public:
// ...
static void arrangeOverlappingBoxes();
};
static void Box::arrangeOverlappingBoxes()
{
// ...
}
我很惊讶这会产生错误 C2724: 'static' should not be used on member functions defined at file scope.
经过一些试验、google 和错误,我发现我的函数定义应该丢失关键字 static,即应该是
void Box::arrangeOverlappingBoxes()
{
// ...
}
但我不知道这背后的基本原理是什么。在类定义和自己的定义中声明不同的函数头似乎是不对称和混乱的。这有什么原因吗?
【问题讨论】:
标签: c++ static member-functions