十万火急!!!C++单链表的问题,好答案狂加分!!!

来源:百度知道 编辑:UC知道 时间:2024/06/14 00:44:03
用单链表实现多项式相加,程序如下:
#include<iostream>
using namespace std;
struct Node
{
int coef;
int exp;
Node *next;
};
class LinkList
{
public:
LinkList(int a[],int n)
{
first=new Node;
first->next=NULL;
for(int i=0;i<n;i++)
{
Node s=new Node;
s->coef=a[i][1];
s->exp=a[i][2];
s->next=first->next;
first->next=s;
}
}
~LinkList();
void PrintList();
friend void Add(LinkList &A,LinkList B);
private:
Node *first;
}A,B;
void main()
{
int a[4][2]={7,0,12,3,-2,8,5,12};
int b[5][2]={4,1,6,3,2,8,5,20,7,28};
A.LinkList(&a[0][0],4);
cout<<"A=";
A.PrintList();
B.LinkList(&b[0][0],5);
cout<<"B=";
B.PrintList();
Add(A,B);
cout<<"A+B=";
A.PrintList();
}
void Add(LinkList &A,

1. 大概看了下,你定义了含有有2个参数的构造函数,所以编译器不再提供隐藏的默认构造函数。你直接定义了A、B,没有匹配的构造函数。
这一条也是你导致错误的原因!~

2. 构造函数不是这么用:A.LinkList(&a[0][0],4);
构造函数是在定义对象时自动调用,你在这里显示调用只会导致生成一个临时的对象而已,无其它~

高科技,小的不懂