类原型

Ske*_*ith 9 c++ prototype class-design

我在类a中放了几个类b的实例,但这会导致错误,因为类a不知道b是什么类.

现在我知道我可以通过编写我的文件来解决这个问题,但这会弄乱可达性并使我烦恼.我知道我可以对我的函数进行原型设计,因此我没有遇到这个问题,但却找不到关于如何对类进行原型设计的材料.

有没有人在c ++中有一个类原型的例子.

因为似乎有些混乱让我告诉你我想要什么

class A
{
public:

B foo[5];

};

class B
{
public:
int foo;
char bar;
}
Run Code Online (Sandbox Code Playgroud)

但是这不起作用,因为A看不到B所以我需要在它们之前放一些东西,如果它是一个函数我会放A(); 然后再实施.我怎么能用课来做这件事.

Kan*_*pus 23

您可以声明所有类,然后按任何顺序定义它们,如下所示:

// Declare my classes
class A;
class B;
class C;

// Define my classes (any order will do)
class A { ... };
class B { ... };
class C { ... };
Run Code Online (Sandbox Code Playgroud)


Pup*_*ppy 5

您正在寻找声明。

class A;
class B {
    A MakeA();
    void ProcessA(A a);
};
class A {
    B bs[1000];
};
Run Code Online (Sandbox Code Playgroud)

如果向前声明一个类,则可以

declare functions taking and returning it or complex types made of it
declare member variables of pointer or reference to it
Run Code Online (Sandbox Code Playgroud)

从根本上讲,这意味着在任何情况下都不会以B内的A实例结尾,反之亦然,您应该能够声明和定义A与B之间的任何接口。