啊是的「朋友」是最令人畏懼的關鍵字,不太面向對象,不完全是程序性的。那麼這裏再次出現問題,我可以想到所有可能的警告,並且所有GCC都可以告訴我讀取poly()沒有在此範圍內聲明(main.cpp)。任何人都可以幫我弄清楚我做錯了什麼?我試過在閱讀poly中重新排列代碼,但這並沒有幫助,其他函數原型似乎也沒有改變這種行爲。我只知道當我弄清楚它是什麼時我會打我自己。與C++中的朋友麻煩
//main.cpp
#include "Polynomial.h"
int main()
{
Polynomial test = readPoly();
}
//Polynomial.h
class Polynomial
{
public :
/** creates the zero Polynomial and sets the default output character*/
Polynomial();
/** creates the constant Polynomial c */
Polynomial(int c);
/** creates a Polynomial with one term c*x^d */
Polynomial(int c, int d);
Polynomial(const Polynomial& toCopy);
friend const Polynomial readPoly();
void insert(Term* term);
}
//Polynomial.cpp
const Polynomial readPoly()
{
cout << "How many terms? ";
int termQty = 0;
cin >> termQty;
int coefficient,degree;
Polynomial newPoly;
for (int n = 0; n <= termQty; n++)
{
cin >> coefficient >> degree;
newPoly.insert(new Term(coefficient,degree));
newPoly.degreeCached = max(degree, newPoly.degreeCached);
}
return newPoly;
}
你是否將面向對象與程序對比? – Saintali 2012-04-03 06:40:51
「Term」在哪裏申報? – 2012-04-03 06:44:18
我想你應該在'Polynomial'之外的'main'可以知道的地方聲明'readPoly()'。 – 2012-04-03 06:45:29