将一个对象传递给类的构造函数

3

我有两个类: poly和Node。我创建了一个由Nodes组成的链表,然后我想创建一个新的poly对象,其中包含指向我的第一个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 构造函数。

调用代码应该只是 poly polyObj(head); - chris
2
那么错误具体是什么? - david.pfx
你还没有解释清楚你具体想要实现什么,而这个目标却无法达成。你得到了什么结果,它们与期望的结果有何不同? - Adi Inbar
1个回答

4
我不明白为什么我不能将Node*传递给我的多项式构造函数!!因为poly需要知道Node是一个类型。您可以通过前向声明来实现:
class Node; // fwd declaration

class poly
{
private:
    Node *start;    
public:
  poly(Node *head)
  {
    start = head;
  }
};

或者,您可以在poly的定义之前放置Node类的定义。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接