0
我有一個「poly」類和一個「node」類。類poly由鏈接的節點列表構成。我試圖將一個poly傳遞給一個函數「printPoly」,它將允許我打印鏈接的節點列表。但我無法訪問節點的變量...訪問類變量時遇到問題
這裏是我的代碼:
class Node
{
private:
double coeff;
int exponent;
Node *next;
public:
Node(double c, int e, Node *nodeobjectPtr)
{
coeff = c;
exponent = e;
next = nodeobjectPtr;
}
};
class poly
{
private:
Node *start;
public:
poly(Node *head) /*constructor function*/
{
start = head;
}
void printPoly(); //->Poly *p1 would be the implicit parameter
};
void poly :: printPoly()
{
poly *result = NULL;
result = this;
double c;
int e;
Node *result_pos = res->start; //create ptr to traverse linked nodes
while(result_pos!= NULL)
{
c = result_pos->coeff; // I CANT ACCESS THESE???
e = result_pos->exponent;
printf(....);
result_pos = result_pos->next; //get next node (also can't access "next")
}
我認爲這事做的事實,「_係數,指數和未來」是節點類的私有變量。但是,因爲我的聚類是由節點組成的,它不應該能夠訪問它們嗎?
我想你應該看看'friend'關鍵字。有關詳細信息,請參閱此問題:[什麼時候應該在C++中使用'friend'?](http://stackoverflow.com/questions/17434/when-should-you-use-friend-in-c) – DaoWen
請讓你的班級'Node'沒有任何訪問控制的結構定義(可能在'poly'中有作用域,除非你認爲它有自己的價值)。這讓你所有的煩惱都消失了。 – Deduplicator
@Deduplicator - 這是一個很好的觀點。將所有字段標記爲「const」並將它們公開爲最好。 – DaoWen