Ah ja "Freund" der am meisten gefürchtete der Schlüsselwörter, nicht ganz objektorientiert, nicht ganz prozedural. Nun, hier macht es wieder Ärger, ich habe jede mögliche Warnung, an die ich denken kann, und der ganze GKK kann mir sagen, dass das Lesen von poly() in diesem Bereich nicht deklariert ist (main.cpp). Kann mir jemand helfen herauszufinden, was ich falsch mache? Ich habe versucht, den Code in Read Poly umzuordnen, aber das hilft nicht, keine anderen Funktionsprototypen scheinen dieses Verhalten ebenfalls zu ändern. Ich weiß nur, dass ich mich selbst schlagen werde, wenn ich herausfinde, was es ist.Ärger mit Freund in 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;
}
kontrastieren Sie objektorientiert mit prozeduralen? – Saintali
Wo wird 'Term' deklariert? –
Ich denke, du solltest 'readPoly()' immer noch außerhalb von 'Polynom' deklarieren, wo' main' davon wissen kann. –