Chcę, a raczej muszę, napisać prostą klasę Wielomian, która wczyta współczynniki wielomianu, a później wartość zmiennej x i obliczy wartość W(x). Napisałem więc taką klasę jak poniżej. Mam pole n, które jest stopniem wielomianu i z racji tego, że jest to stała to nadaję jej wartość przez listę inicjalizującą konstruktora, mam też tablicę współczynników t, którą tworzę w konstruktorze. Cały plik wygląda tak:
#include <cstdlib>
#include <iostream>
class Wielomian {
public: Wielomian(int n = 0);
//public: void wczytajWspolczynniki();
//public: void pisz();
//public: float obliczWartosc(int x = 0);
public: ~Wielomian();
private: const int n; //stopień wielomianu
private: float *t; //tablica współczynników wielomianu
};
using namespace std;
int main() {
cout << "Podaj stopień wielomianu W(x) ";
int st;
cin >> st;
Wielomian wielomian(st);
return EXIT_SUCCESS;
}
Wielomian::Wielomian(int n = 0) : n(n) {
t = new float[n + 1];
}
Wielomian::~Wielomian() {
delete[] t;
}
A przy kompilacji pojawia się błąd
polynomial.cpp:33:32: error: default argument given for parameter 1 of ‘Wielomian::Wielomian(int)’ [-fpermissive]
Wielomian::Wielomian(int n = 30) : n(n) {
^
polynomial.cpp:12:10: error: after previous specification in ‘Wielomian::Wielomian(int)’ [-fpermissive]
public: Wielomian(int n = 30);
^
O co chodzi z tym błędem i jak poprawić ten prosty kod żeby kompilował się bez błędu? Wszystko robię tak jak jest powiedziane na stronie http://cpp0x.pl/ i nie mam już pojęcia jak to poprawić.