我最近遇到了这样的情况:
class A
{
public:
typedef struct/class {...} B;
...
C::D *someField;
}
class C
{
public:
typedef struct/class {...} D;
...
A::B *someField;
}
Run Code Online (Sandbox Code Playgroud)
通常你可以声明一个类名:
class A;
Run Code Online (Sandbox Code Playgroud)
但是你不能转发声明一个嵌套类型,以下导致编译错误.
class C::D;
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我正在研究一些C++,现在我正在与Java对抗它的相似之处.我知道Java中内部类的目的,但现在我正在尝试在C++中使用嵌套类,并且我发现"容器"类的私有属性不是嵌套类可见的,所以为什么我应该使用它们呢?另外,有没有办法使这些属性可见?
我有一个枚举音高和一个类音高,对我来说自然都应该这样命名,但是两者都有相同名称是令人困惑的.当枚举的名称与类类型发生冲突时,是否有任何指导原则?
例:
public enum Pitch
{
Fastball,
Sinker,
Curveball
}
public class Pitch
{
}
Run Code Online (Sandbox Code Playgroud)