#include<iostream.h>classaddition{ (intnum);addition*next;};voidsum(intnum1,intnum2){cout<<"theansis:"<<num1+num2<<endl;}voidnumber(addition*&a,intnum){addition*p=newaddition(num);p->next=NULL;if(a==NULL)a=p;else{a->next=p;a=a->next;}}voidmain(){intnum1,num2;addition*a=NULL;cout<<"inputtwodigitsforaddition"<<endl;cin>>num1;number(a,num1);cin>>num2;number(a,num2);sum(num1,num2);cout<<endl;}系統編譯顯示的錯誤是:2. :unresolvedexternalsymbol"public:__thiscalladdition::addition(int)"(??0addition@@)Debug/2. :1unresolvedexternalsErrorexecutinglink.exe.請問是什么意思?怎么解決?
熱心網友
原程序中,addition類的定義中聲明了函數:addition,但未給出函數的定義,所以出錯,補上addition的定義便可通過連編。連編環境:TC++3。0DOS版//修改后的程序#includeclassaddition{ (intnum);//原程序中聲明了此函數,但未給出定義,所以無法通過連編addition*next;};addition::addition(intnum)//原程序的addition類中聲明了此函數,//但未定義,所以出錯。補上后可以通過連編{num=num;//加上此句沒有實際意義,只是避免連編時警告參數num從未使用}voidsum(intnum1,intnum2){coutnext=NULL;if(a==NULL)a=p;else{a-next=p;a=a-next;}}voidmain(){intnum1,num2;addition*a=NULL;coutnum1;number(a,num1);cinnum2;number(a,num2);sum(num1,num2);coutclassaddition;typedefaddition*PADD;classaddition{ (intnum);intnum;//增加了一個num數據成員PADDnext;};addition::addition(intnum_in=0)//原來沒有定義此函數,所以連接時出錯{num=num_in;next=NULL;}voidsum(PADDa)//對addition鏈表中所有元素求和{intsum=0;while(a!=NULL){sum+=a-num;a=a-next;}coutnext!=NULL){q=q-next;}q-next=p;}}voidfreelink(PADD&a)//釋放addition鏈表{PADDp,q;if(a!=NULL){p=a;q=a-next;while(q!=NULL){p=q;q=q-next;deletep;}deletea;a=NULL;}}voidmain(){intnum1,num2;PADDa=NULL;coutnum1;number(a,num1);cinnum2;number(a,num2);cout<<"beforelinkbefree:"< 原程序中,addition類的定義中聲明了函數:addition,但未給出函數的定義,所以出錯,補上addition的定義便可通過連編。連編環境:TC++3。0DOS版//修改后的程序#includeclassaddition{ (intnum);//原程序中聲明了此函數,但未給出定義,所以無法通過連編addition*next;};addition::addition(intnum)//原程序的addition類中聲明了此函數,//但未定義,所以出錯。補上后可以通過連編{num=num;//加上此句沒有實際意義,只是避免連編時警告參數num從未使用}voidsum(intnum1,intnum2){coutnext=NULL;if(a==NULL)a=p;else{a-next=p;a=a-next;}}voidmain(){intnum1,num2;addition*a=NULL;coutnum1;number(a,num1);cinnum2;number(a,num2);sum(num1,num2);coutclassaddition;typedefaddition*PADD;classaddition{ (intnum);intnum;//增加了一個num數據成員PADDnext;};addition::addition(intnum_in=0)//原來沒有定義此函數,所以連接時出錯{num=num_in;next=NULL;}voidsum(PADDa)//對addition鏈表中所有元素求和{intsum=0;while(a!=NULL){sum+=a-num;a=a-next;}coutnext!=NULL){q=q-next;}q-next=p;}}voidfreelink(PADD&a)//釋放addition鏈表{PADDp,q;if(a!=NULL){p=a;q=a-next;while(q!=NULL){p=q;q=q-next;deletep;}deletea;a=NULL;}}voidmain(){intnum1,num2;PADDa=NULL;coutnum1;number(a,num1);cinnum2;number(a,num2);cout<<"beforelinkbefree:"< addition(int num);也就是構造函數你還沒有定義,增加后應該沒有問題。熱心網友
熱心網友