我有两个类:poly和Node。我创建一个链接的节点列表,然后我想创建一个新的多边形对象,其中包含指向我的第一个Node对象的指针。
这是调用代码:
poly *polyObj = new poly(head);
我测试了我的代码并确认“head”包含节点的链接列表,head也被声明为Node *。
以下是类定义:
class poly
{
private:
Node *start;
public:
poly(Node *head)
{
start = head;
}
};
class Node
{
private:
double coeff;
int exponent;
Node *next;
public:
Node(double c, int e, Node *nodeobjectPtr)
{
coeff = c;
exponent = e;
next = nodeobjectPtr;
}
};
我不明白为什么我不能将Node *传递给我的poly构造函数。
答案 0 :(得分:4)
我不明白为什么我不能将Node *传递给我的poly构造函数!!
因为poly
需要知道Node
是一种类型。您可以通过前向声明来实现这一目标:
class Node; // fwd declaration
class poly
{
private:
Node *start;
public:
poly(Node *head)
{
start = head;
}
};
或者,您可以在Node
定义之前放置poly
类定义。