相关疑难解决方法(0)

在C++中转发嵌套类型/类的声明

我最近遇到了这样的情况:

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++ nested class forward-declaration

189
推荐指数
3
解决办法
5万
查看次数

C++ - 嵌套类有什么意义?

我正在研究一些C++,现在我正在与Java对抗它的相似之处.我知道Java中内部类的目的,但现在我正在尝试在C++中使用嵌套类,并且我发现"容器"类的私有属性不是嵌套类可见的,所以为什么我应该使用它们呢?另外,有没有办法使这些属性可见?

c++ inner-classes

32
推荐指数
2
解决办法
6634
查看次数

枚举名称与类名冲突时该怎么办?

我有一个枚举音高和一个类音高,对我来说自然都应该这样命名,但是两者都有相同名称是令人困惑的.当枚举的名称与类类型发生冲突时,是否有任何指导原则?

例:

public enum Pitch
{
    Fastball,
    Sinker,
    Curveball
}

public class Pitch
{
}
Run Code Online (Sandbox Code Playgroud)

c# naming-conventions

5
推荐指数
1
解决办法
2632
查看次数