为什么这段代码不能编译?
class A { class B { public enum Enum <-- this line { AD, BC } } }
编译器报告:
enum declarations allowed only in static contexts.
但是当我把枚举放在类a中时,一切都好了。这是相当令人惊讶的。我想我在c++中没有这个问题。
vc9ivgsu1#
您可以通过使b为静态来修复此问题:
static class B { ...
这更接近地反映了c++对嵌套类的作用。默认情况下(无 static ),示例b包含对示例a的隐藏引用。java内部类和静态嵌套类可以很好地解释这些差异。
static
1条答案
按热度按时间vc9ivgsu1#
您可以通过使b为静态来修复此问题:
这更接近地反映了c++对嵌套类的作用。默认情况下(无
static
),示例b包含对示例a的隐藏引用。java内部类和静态嵌套类可以很好地解释这些差异。