首页 > 解决方案 > A::B::B::B::B...B::f() 对吗?为什么我能那样做?

问题描述

我不知道如何解释这个:

namespace A
{
struct B
{
  static void  f()
  {
  }
};
}

int  main()
{
  A::B::B::B::B::B::B::B::B::B::B::f();
}

为什么我可以这样做:

A::B::B::B::B::B::B::B::B::B::B::f();

我不明白为什么会这样。

标签: c++namespaceslanguage-lawyer

解决方案


这是由于注入的类名

在 B 类内部,B指的是 类B,如B::B

所以A::B::B指类B。等等。


推荐阅读