我对 C++ 中类成员的静态引用有疑问。很容易创建一个静态 const 成员,它是同一类的非静态成员的指针;像这样:
class A {
public:
int x;
private:
static int A::* const ptr_on_x;
};
int A::* const ptr_on_x = &A::x;
现在,我不知道为什么我不能写这样的东西,即创建一个静态 const 成员,它是对同一类的非静态成员的引用:
//won't compile
class B {
public:
int x;
private:
static int B::& const ptr_on_x;
};
int B::& const ptr_on_x = B::x;
从 SO 中关于指针和引用之间差异的各种帖子中,我没有找到任何线索。相反,我什至读到“引用是一种别名”。那么我误解了什么?
那么是否可以在同一个类中定义一些变量别名?我承认,对于一个简单的类,它似乎不是很有用;这是关于语言本身的问题。
另外我不太了解 C++0x,那么 C++0x 是否为此提供了解决方案?
编辑 MarcinŁoś 的评论给了我另一个想法。您可以获取函数引用,那么我可以创建一个作为类方法引用的类成员吗?