【问题标题】:Pass an object to a class constructor将对象传递给类构造函数
【发布时间】:2014-06-04 16:46:15
【问题描述】:

我有两个类: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);
  • 那么究竟是什么错误?
  • 您没有解释具体您要完成的工作是什么,这是行不通的。您得到了什么结果,它们与预期结果有何不同?

标签: c++ class object constructor


【解决方案1】:

我不明白为什么我不能将 Node * 传递给我的 poly 构造函数!!

因为poly 需要知道Node 是一个类型。您可以通过前向声明来实现:

class Node; // fwd declaration

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多