Znaczenie błędu w klasie

0

Dopiero zaczynam programować obiektowo :) oto część kodu:

class punkt_3D{
public:
  double x;
  double y;
  double z=(sin(x)*sin(y)*100);
  void wypisz(int i, double x, double y, double z){
  	cout<< "x[" << i << "]=" << x << "; y[" << i << "]=" << y << "; z[" << i << "]=" << z << ';' <<endl;
  };
  void zapisz();
};

jednak co do linikji z "double z=(sin(x)*sin(y)*100);" wyskakuje mi błąs:
non-static data member initializers only available with -std=c++11 or -std=gnu++11 [enabled by default]
Program kompiluje się i uruchamia ale ciekawi mnie to oznacza ten błąd :)
Pozdrawiam :)

0

Prawdopodobnie chodzi o to że z inicjalizujesz przy stworzeniu klasy, na podstawie danych których jeszcze NIE MA. Swoją drogą dziwne że nie kazało ci tego do konstruktora przenieść oraz że działa na prawdziwych x i y zamiast domyślnych "śmieciach". Widać zmiany w c++11 będą większe niż myślałem.

0
struct punkt_3D
  {
   double x,y,z;
   punkt_3D(int X,in Y):x(X*2*M_PI/99),y(Y*2*M_PI/99),z((sin(x)*sin(y)*100)) {} // X i Y w granicach 0..99
   void wypisz(int i) { cout<< "x[" << i << "]=" << x << "; y[" << i << "]=" << y << "; z[" << i << "]=" << z << ';' <<endl; };
   void zapisz(ostream &s) { s<<x<<' '<<y<<' '<<z<<endl; }
  };

1 użytkowników online, w tym zalogowanych: 0, gości: 1