例如,一个简短的命名构造函数如下:
class A
{
public:
static A createA() { return A(0); } // named constructor
private:
A (int x);
};
int main(void)
{
A a = A::createA();
}
我曾认为静态方法只能访问静态数据成员,或通过现有对象访问私有数据/方法。
但是,在上面的代码中,私有构造函数A()
不是静态的,并且在调用它的时候也不存在对象。
因此,我唯一能想到的解释是静态方法可以访问同一类的非静态私有方法。请问是否有人可以肯定或否定我的想法,并可能附上一些解释?
如果这太琐碎了,请原谅,但关键词太常见了,我在数十页的谷歌搜索结果中都找不到答案。提前感谢。