这个题目一直不知道怎么起比较好,看代码就知道了,比如下面这段代码:
class A
{
private:
char buffer[1024];
public:
static size_t GetBufferSize()
{
return sizeof(buffer);
}
};
经过测试,这段代码在 Visual Studio 2013 里面编译不通过,不通过的原因是无法访问 buffer。但是在 Visual Studio 2015 里面可以正常编译并执行。本来这个地方就不应该编译不过,因为 sizeof 的值应该都是编译时确定的,而不会设置到静态成员访问非静态成员的问题吧。