Witam, jestem początkujący więc proszę o wyrozumiałość. Próbuje napisać programik obiektowo, który pisałem strukturalnie, tak dla ćwiczenia. I już na początku mam problem ze zrozumieniem przypisania wartości do tablicy przez konstruktor.
Tutaj bardzo uproszczony kod:
//Kszt.h
#include <iostream>
#include <windows.h>
using namespace std;
class Kszt
{
public:
double x;
double y;
double tab[];
void wczytaj();
void rysuj();
Kszt()
{
wczytaj();
}
// ~Kszt();
};
//----------------------------------------------------------
// wczytaj.cpp
#include <iostream>
#include "Kszt.h"
using namespace std;
void Kszt::wczytaj()
{
x=2; // te wartosci przypisuja sie i sa "widoczne" w funkcji rysuj
y=3; // te wartosci przypisuja sie i sa "widoczne" w funkcji rysuj
double tab[8]={2,3,5,1,7,9,3,0}; // tablice tylko w tej "wczytaj"
cout<<"x.wczytaj="<<x<<endl;
cout<<"y.wczytaj="<<y<<endl<<endl;
for(int i=0; i<8; i++)
{
cout<<tab[i]<<endl; // tu wszystko dobrze
}
}
//----------------------------------------------------------
//rysuj.cpp
#include <iostream>
#include "Kszt.h"
using namespace std;
void Kszt::rysuj()
{
cout<<endl;
cout<<"x.rysuj="<<x<<endl; // te sa juz przypisane
cout<<"y.rysuj="<<y<<endl<<endl; // te sa juz przypisane
for(int i=0; i<8; i++)
{
cout<<tab[i]<<endl; // TUTAJ SMIECI
}
}
//----------------------------------------------------------
//main
#include <iostream>
#include "Kszt.h"
using namespace std;
int main()
{
Kszt K1;
K1.rysuj();
return 0;
}
w funkcji "wczytaj" (konstruktor?) odczyt z tablicy jest w porządku, zaś w funkcji "rysuj" odczytują się śmieci, a wartości x i y są odczytywane w obu funkcjach dobrze, bez double przed tablicą w funkcji "wczytaj" wyskakuje błąd "cannot convert ' brace-enclosed initializer list ' to 'double' in as..."
Wiem, że to podstawy podstaw, ale kompletnie nie rozumiem w czym jest problem, bo jeśli obiekt jest stworzony (chyba), to dane w tablicy powinny tam być.
Bardzo proszę o jakąś wskazówkę.