[英]Pass an object to a class constructor
我有兩個類: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構造函數。
我不明白為什么我不能將Node *傳遞給我的poly構造函數!
因為poly
需要知道Node
是一種類型。 您可以通過前向聲明來實現:
class Node; // fwd declaration
class poly
{
private:
Node *start;
public:
poly(Node *head)
{
start = head;
}
};
或者,您可以在poly
的定義之前放置Node
類定義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.