[問題] 不曉得哪裡有問題(C++)
小弟在寫一個用OOP實作多項式 的程式
可是就一個小地方 debug一個早上還是找不出原因
把所有變數值都印出來,還是不知道為什麼
第一次在main裡面執行 a.newTerm(2,4); 是成功的
但下一行再執行 a.newTerm(3,5);
就在termArray[terms].coef=theCoeff; 卡住了,也沒說錯誤,但從這以後
的指令都不跑了,太奇怪了!
另外一件很怪的事
如果我把termArray[terms].coef=theCoeff; 的上一行,也就是:
cout<<"termArray["<<terms<<"].coef="<<termArray[terms].coef<<endl;
註解掉(這只是一個印出目前值,刪掉應該無傷大雅),執行時就好像會runtime_error
ps.compiler是Dev C++
這到底是什麼問題啊@@
#include <iostream>
using namespace std;
class Term{
public:
friend class Poly;
double coef;
int exp;
};
class Poly{
public:
Term* termArray;
int capacity;
int terms;
void newTerm(double theCoeff,int theExp)
{
cout<<"Enter function newTerm theCoeff:"<<theCoeff<<" theExp:"<<theExp<<endl;
if(terms<=capacity-1)
{
cout<<"Enter if statement."<<endl;
capacity*=2;
cout<<"Now capacity:"<<capacity<<endl;
Term* temp=new Term[capacity];
copy(termArray,termArray+terms,temp);
termArray=temp;
delete[] temp;
}
cout<<"termArray["<<terms<<"].coef="<<termArray[terms].coef<<endl;
termArray[terms].coef=theCoeff;
cout<<"termArray["<<terms<<"].coef="<<termArray[terms].coef<<endl;
termArray[terms++].exp=theExp;
cout<<"---Information list---"<<endl;
cout<<"term:"<<terms<<endl;
cout<<" capacity:"<<capacity<<endl;
cout<<" ["<<terms-1<<"]"<<": " <<endl;
cout<<"coef:"<<termArray[terms-1].coef<<endl;
cout<<"exp:"<<termArray[terms-1].exp<<endl<<endl;
}
Poly():terms(0),capacity(1){}
};
int main()
{
Poly a,b;
a.newTerm(2,4);
a.newTerm(3,5);
a.newTerm(4,6);
a.newTerm(5,7);
system("pause");
return 0;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 112.104.15.86
推
10/17 12:50, , 1F
10/17 12:50, 1F
→
10/17 12:54, , 2F
10/17 12:54, 2F
推
10/17 12:56, , 3F
10/17 12:56, 3F
→
10/17 12:57, , 4F
10/17 12:57, 4F
→
10/17 13:01, , 5F
10/17 13:01, 5F
→
10/17 13:02, , 6F
10/17 13:02, 6F
推
10/17 13:20, , 7F
10/17 13:20, 7F
推
10/17 13:24, , 8F
10/17 13:24, 8F
推
10/17 14:26, , 9F
10/17 14:26, 9F
→
10/17 17:30, , 10F
10/17 17:30, 10F